Итак, согласно документации (и практическому опыту;))метода «then» от AngularJS возвращает новое обещание (https://docs.angularjs.org/api/ng/service/ $ q «Интерфейс Promise API»).Отклонение в .then angularJS-цепочке обещаний
Рассмотрим фрагмент кода, как это:
// method somewhere in MyService service
// ...
loadItem = function() {
return OtherService.load().then(function(item) {
item.preprocessed = true;
return item;
});
}
// end of loadItem method
// Somewhere along the controller:
MyService.loadItem().then(function(item) {
// do something with an item...
alert(item.preprocessed);
}, function(error) {
alert('Error!');
})
Теперь я хочу, чтобы сделать некоторую обработку на обратный обещание стоимости, но в то же время я хочу отторжении быть протолкнул цепи обещает без меня, вручную отклоните обещание на каждом шаге. В приведенном выше примере, если элемент загружен нормально, для свойства preprocessed установлено значение true, а правильный обработчик на контроллере then()
уволен, но когда что-то пойдет не так, и результат отклонения метода OtherService.load() отклонен, обработчик отклонения в код контроллера не будет запущен.
Есть ли способ преодолеть это, может быть, есть синтаксис, позволяющий пройти отбраковку?