Подтвердить что ты не робот

Как связать функции ошибки обещания в angularjs

Я знаю, как цепочка promises, так что выполняются несколько функций успеха. Это объясняется многими примерами. Как сделать цепочку promises так, чтобы выполнялись несколько функций ошибки?

4b9b3361

Ответ 1

При обработке ошибки (и либо возвращаемое значение, либо вообще не имеет значения) обещание , возвращаемое с, считается разрешенным. Вы должны вернуть отклоненное обещание от каждого обработчика ошибок для распространения и блокировки обработчиков ошибок.

Например:

promseA.then(
   function success() {
   },
   function error() {
      return $q.reject();
   })
.promiseB.then(
   function success() {
   },
   function error() {
      return $q.reject();
   })
.promiseC.then(
   function success() {
   },
   function error() {
      return $q.reject();
   });

Ответ 2

Функция

then/fail возвращает обещание, которое может быть отклонено путем опрокидывания. Если вы хотите связать несколько обработчиков ошибок и вызвать их все, вы должны выбросить ошибку из предыдущих обработчиков ошибок.

var d = $q.defer();
d.promise.catch(errorHandler1).catch(errorHandler2);
d.reject();

function errorHandler1 {
 throw new Error();
}

function errorHandler2() {
  console.log("I am triggered");
}

Или вместо catch вы можете использовать метод then и передать errorHandler1 и errorHandler2 в качестве второго параметра.