Angular 1.X - 添加promise处理程序以捕获从多个函数检索异步数据时的错误

时间:2016-12-29 00:43:24

标签: javascript angularjs asynchronous promise

假设在我的控制器中我有一些异步方法,我使用$ q.all来等待所有这些方法完成。如果数据检索失败,如何向其中一个方法添加错误处理,并确保使用其他数据调用$ q.all,并为失败的数据发出相应的错误消息?

app.controller('Ctrl', ['$scope','$q', function($scope, $q) {

var promises = [];
var controller_data;

promises.push(assyncMethod1());
promises.push(assyncMethod2());

$q.all(promises).then(function () {
.... 

})

function assyncMethod1() {
 return $http.get("data.json").success( function(data) {
  controller_data = data; 
 });
 //on error?
}

function assyncMethod2() {
 return $http.get("data2.json").success( function(data) {
 ...
 });
 //on error?
}


}]);

我知道你会使用的单一承诺:

//basic version
promise.then(fnSuccess)
  .catch(fnFailure) //optional
  .finally(fnAlways) //optional

但是你会如何为多种功能做到这一点?

0 个答案:

没有答案