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


我正试图处理我的资源错误,然后处理我的资源拒绝 $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 但那不应该有所作为吗?


1983
2018-02-07 11:11


起源

我认为你需要[用户。$ promise]来获得预期的结果。 - michael
成功回调有什么参数? - Bergi
谢谢迈克尔,让我的一天!!!!! - ppollono


答案:


根据迈克尔的评论

我变了

var promiseList = [user];

对此:

var promiseList = [user.$promise];

而现在 $q.reject() 正在接受 $q.all()

太棒了,谢谢你的建议。


12
2018-02-07 13:19



我无法找出为什么我的$ q.all()无法正常工作。经过几个小时的搜索,我终于找到了promise.promise属性的问题! - Adrian Krebs