我已經使用$q
服務與Angular建立了承諾。Angular promise'all` method returns`undefined`
var get = function() {
var defer = $q.defer();
setTimeout(function() {
defer.resolve('test');
}, 1000);
return defer.promise;
}
當我調用此函數,它返回像這樣的預期數據:
var promise1 = api.get().then(function(data){
console.log(data); //logs test
});
var promise2 = api.get().then(function(data){
console.log(data); //logs test
});
但是,當我使用all
方法,我得到含有undefined
兩次的數組。
$q.all([promise1, promise2]).then(function(data){
console.log(data); //logs [undefined, undefined];
});
我在這裏錯過了什麼嗎?
您的日誌記錄處理程序確實返回'undefined'。 – Bergi
'get'函數可以使用'$ timeout',這樣自定義的'$ q'就會被移除.. –