我正在使用Angular 1.5.5(由于项目限制,我无法更改为另一个vwrsion),并且希望链接异步请求并逐个处理它们。我有以下内容:
function parseElement(element) {
// Do things with element data
}
var myArray = [...]; // values from somewhere
var chain = $q.when();
angular.forEach(myArray, function(element) {
var changedData = parseElement(element);
chain = chain.then(
MyService.myMethod(changedData, function(res) {}, function(err) {})
);
});
我的问题是每个人都希望NEEDS在下一个循环运行之前完成。这非常重要,因为下一个API调用可能取决于先前的调用。我事先不知道myArray
将包含多少个元素,并且可能会有很多元素。
首先,我使用$q.all
是因为我不知道API调用可能取决于以前的调用,这给了我错误。我以为上面的内容会改变这一点,但id并没有改变,这些调用仍在前一个调用完成之前被调用。
有人有主意吗?