AngularJS处理$ q.all中的资源被拒绝

时间:2014-02-07 11:11:50

标签: javascript angularjs promise q

我正在尝试使用我的资源处理错误,然后处理$q.all()中的资源拒绝。

这是我的代码:

var user = User.get({id: 1}, function() {
    // Success
}, function(response) {
    // Error
    return $q.reject(response);
});

var promiseList = [user];
$q.all(promiseList).then(function(){
  // Success <-- this seems to run all the time
  }, function(response) {
    // Error <-- this never seems to run but I want it to
});

当我的用户资源收到404时,错误回调会处理它并返回$q.reject

然而,$q.all中的成功回调被调用,而不是我的错误回调。我会想,因为我拒绝承诺$q.all错误回调会被解雇?

我感谢我在promiseList中只有一件商品,但这不应该有所不同吗?

1 个答案:

答案 0 :(得分:12)

根据迈克尔的评论

我改变了

var promiseList = [user];

对此:

var promiseList = [user.$promise];

现在$q.reject()正在接收$q.all()

太棒了,谢谢你的建议。