對不起,我不能在這裏顯示完整的代碼,我想出了以下代碼片段。 我有一個服務和控制器。 在服務中,我添加了2秒超時到我的組服務來測試微調加載。角度承諾延遲不按預期方式工作
但以某種方式在控制器中,我的代碼馬上運行,無需等待2秒鐘。
我做了3個破發點,執行我所期望的順序爲:2-> 1-> 3 但是,它結束了與2-> 3-> 1
這裏是我的服務。
groupService.get = function() {
var deffered = $q.defer();
deffered.promise = $getMyDataStuffPromise.then(function (data) {
$timeout(function() {
deffered.resolve(); <- break point 1
}, 2000);
}, function (error) {
deffered.reject();
console.log('group error', error);
});
return deffered.promise; <- break point 2
};
控制器:
$q.all([
PeopleSvc.get(),
GroupSvc.get()
]).then(function(data){
console.log('data returns, stop spinner'); <- break point 3
});
請你讓我知道什麼是錯的代碼?謝謝!
非常感謝你! – innek