0
之前,我有以下的(增加承諾的數組):Angularjs q.all射擊承諾斷定
function processInformation() {
var promisesArray = [];
for(var i =0; i<a.length; i++) {
var promise = this.getValue().then((response) => {
this.processValue(response).then(()=> {
// it gets here
});
});
promises.push(promise).
}
return $q.all(promises);
}
然後我打這個電話就像這樣:
getInformation().then((response) =>{
// wait for the promises to be resolved
this.processInformation().then((r) => {
// never gets here
});
}).finally(()=> {
//gets here
});
這不是工作如預期的那樣,因爲它確實可以調用finally,並且它永遠不會進入processInformation。我也嘗試使用angular.forEach而不是for循環(在其他文章中建議),但它仍然無法正常工作。它確實進入processValue()的內部。什麼是另一種方法來解決這個問題?
您的文章是矛盾的。你說它永遠不會進入'processInformation'內部,並且它進入'processValue'內部,但是你發佈的第一個函數是processInformation和processValue,這就是_inside_。你可以發佈一個不會自相矛盾的實例嗎?此外,我們不知道「this」,「a」或其他各種各樣的東西是什麼。這裏有很多缺少的信息。最後,看起來你可能在調用'processInformation'時(假設)使用了錯誤的'this'。有沒有你沒有告訴我們的控制檯錯誤? – JLRishe 2015-03-30 20:27:59