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

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 будет запущен?

Я ценю, что у меня есть только 1 элемент в моем promiseList, но это не должно меняться, если оно?

4b9b3361

Ответ 1

По словам Майкла в комментариях

Я изменил

var promiseList = [user];

Для этого:

var promiseList = [user.$promise];

И теперь $q.reject() подбирается $q.all().

Удивительно, спасибо за совет.