AngularJS HTTP коды ошибок с $ q.all ()?

0

У меня есть куча http-запросов вроде этого:

$q.all([$http({
    method: 'POST',
    url: urlOne,
    headers: {Authorization: "Token " + jqToken}
}), $http({
    method: 'POST',
    url: urlTwo,
    headers: {Authorization: "Token " + jqToken}
})])
    .then(function (results) {
        //do stuff
    });

Однако urlOne и urlTwo (и множество других) могут при некоторых условиях возвращать 403. В этом случае все просто зависает, а функция() никогда не выполняется. Как я могу обрабатывать 403 ответа? Благодарю.

  • 0
    Что вы подразумеваете под "все просто замерзает?"
  • 1
    then функция обещания принимает два аргумента: успех и обратный вызов ошибки - добавьте затем вторую функцию, чтобы перехватить ваши ошибки: .then(function(result) { // success }, function(err) { // error });
Показать ещё 1 комментарий
Теги:
q

1 ответ

4
Лучший ответ

Похоже, вам нужно обрабатывать ошибки.

$q.all([...])
  .then(
    function (results) {
      // Handle success
    }, function (err) {
      // Handle errors
    });
  • 0
    Спасибо! Другой вопрос: я пишу результаты запросов в локальное хранилище. Как настроить обработку ошибок, чтобы пропустить ответы 403?
  • 0
    Похоже, вы хотите обработать ответ для каждого индивидуально. q.all будет выдавать ошибку при первом отклонении любого из обещаний. Если вы не хотите, чтобы это происходило, я бы прикрепил обработчик результатов к каждому запросу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню