在承诺1完成之前循环承诺而不运行承诺2

时间:2018-10-03 09:33:31

标签: javascript angularjs promise angular-promise q

我正在使用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并没有改变,这些调用仍在前一个调用完成之前被调用。

有人有主意吗?

0 个答案:

没有答案