[英]$q.all() not calling fail handler if one promise fails
只是想了解$q.all()
工作原理:
在我的示例中,我使用$q.all()
執行2個函數(都故意返回reject()
),我希望then()
的fail
處理函數被調用,但事實並非如此,為什么會這樣呢?
碼:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope,$q) {
f1 = function(){
return $q.defer().reject();
}
f2 = function(){
return $q.defer().reject();
}
s = function(){alert('success!'); };
f = function(){alert('failed!');};
$q.all([f1(),f2()]).then(s,f);
}
小提琴:
http://jsfiddle.net/sajjansarkar/ADukg/10942/
編輯:
我發現如果使函數返回原始承諾並在拒絕之前引入延遲,則可以使用相同的代碼。
應該:
f2 = function(){
var p = $q.defer();
p.reject();
return p.promise;
}
要么
f2 = function() {
return $q.reject()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.