【发布时间】:2014-06-15 12:10:00
【问题描述】:
我有一个带有这种异步 API 的 AngularJS 服务:
myService.asyncCall(['id0', 'id3', 'id2']).then(function (complexData) {
// handle complexData
}).catch(function (error) {
console.log(error);
});
asyncCall 封装了多个由$q.all 处理的$http 调用。每个$http 请求都可以响应错误,我希望错误由一个catch 处理程序处理。那么如何实现catch处理程序的多次调用呢?
【问题讨论】:
-
$q.all在任何承诺被拒绝时被拒绝。你到底想达到什么目的? -
@ExpertSystem,是的,但是我想处理我传递给
$q.all的承诺数组中的每个可能的拒绝 -
对不起,我还是不明白你想要达到什么目的(这就是我要求澄清的原因)。 “处理 promises 数组中每个可能的拒绝”是什么意思.
-
好吧,忘了
$q.all。我希望我的asyncCall1. 获得一组承诺,2. 为数组中的每个已解决承诺有一个解析处理程序(示例中的then块)3. 有一个拒绝处理程序,将为每个被拒绝的承诺调用. (示例中的catch块)。我希望现在一切都清楚了。 -
我还有问题 :) 1. 您希望请求并行、顺序或其他方式发生吗? 2. 当任何请求失败时,您希望发生什么?继续其余的或中止所有? 3. 我了解您希望有两个功能:1 用于处理任何请求的成功和一个用于处理任何请求的错误(所以如果 3 个请求成功,您的成功处理程序应该被调用 3 次)。这是正确的还是我仍然没有抓住重点?
标签: javascript angularjs promise q