2014-02-07 2 views
11

Я пытаюсь обрабатывать ошибки с моими ресурсами, а затем обрабатывать отклонение ресурсов в моем $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, но это не должно иметь значения, если это так?

+4

Я думаю, вам понадобится [пользователь. $ Обещание], чтобы получить ожидаемый результат. – michael

+0

Какие аргументы получает обратный вызов успеха? – Bergi

+0

Спасибо майкл, сделал мой день !!!!! – ppollono

ответ

12

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

Я изменил

var promiseList = [user]; 

Для этого:

var promiseList = [user.$promise]; 

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

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

+0

Я не смог узнать, почему мой $ q.all() работает неправильно. После нескольких часов поиска я наконец нашел проблему с обещанием. –

Смежные вопросы