我有一个关于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