我有一個關於AngularJS中的異步數據調用的問題。使用數據從一個異步API調用到另一個
問題是我將從一個API調用中接收數組中的多個對象,並且我將不得不使用來自不同API調用的數據來擴展這些對象。
我在考慮嵌套異步調用,但是我的邏輯在這個方面會如何處理$ q服務。我有一個服務將返回第二個調用已擴展的對象,所以我可以在控制器中使用它來顯示視圖。
第一個API調用返回一些我需要的第二個API調用的參數,以便獲取我將返回給控制器的相關數據。
我將不得不在第一次調用內部進行循環,以便我可以在其中運行第二次API調用,但是我該如何將它返回給我的控制器?當第一個循環已經運行時,我無法解決,因爲好吧,它解釋了它自己。
什麼是這樣的事情的解決方案?
編輯,我的問題在僞的javascript:
returnListOfStuff().then(function (data) {
var result = data.Result;
for (var i = 0; i < result.length; i++) {
var dataForListItem = null;
returnDataForListItem(result[i].ID).then(function (data) {
dataForListItem = data;
});
for (prop in dataForListItem[0]) {
result[i].prop = dataForListItem[0][prop];
}
}
return result;
});
很明顯,這是不行的,認爲它只會從第一個呼叫returnListOfStuff()
獲取結果,因爲什麼是內發生的循環尚未解決。我真的不能弄清楚如何做到這一點與$q.all()
,因爲我沒有從returnListOfStuff
功能尚未
沒有你的代碼,它很難判斷你的問題是什麼,但是這聽起來像是[帶環$ Q承諾(http://stackoverflow.com/q/25671760/1048572) – Bergi
@Bergi的副本添加一些僞代碼來更接近地描述問題... – NicT