如何在 angularjs 中链接 promise 错误函数
How to chain promise error functions in angularjs
我知道如何链接承诺以便执行多个成功函数。这在许多例子中都有说明。我如何链接承诺以便执行多个错误函数?
then
/fail
函数returns一个promise,可以通过抛出错误来拒绝。如果你想链接多个错误处理程序并触发它们,你应该从前面的错误处理程序中抛出错误。
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
作为第二个参数传递。
处理错误时(并且,值被 returned 或根本没有值),承诺 return 从那时起 被认为已解决。您必须 return 来自每个错误处理程序的拒绝承诺,以便传播和链接错误处理程序。
例如:
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();
});
我知道如何链接承诺以便执行多个成功函数。这在许多例子中都有说明。我如何链接承诺以便执行多个错误函数?
then
/fail
函数returns一个promise,可以通过抛出错误来拒绝。如果你想链接多个错误处理程序并触发它们,你应该从前面的错误处理程序中抛出错误。
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
作为第二个参数传递。
处理错误时(并且,值被 returned 或根本没有值),承诺 return 从那时起 被认为已解决。您必须 return 来自每个错误处理程序的拒绝承诺,以便传播和链接错误处理程序。
例如:
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();
});