首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript/Angularjs :等待承诺实现,然后再进入foreach循环中的下一次迭代

Javascript/Angularjs :等待承诺实现,然后再进入foreach循环中的下一次迭代
EN

Stack Overflow用户
提问于 2016-01-20 03:57:52
回答 1查看 2.2K关注 0票数 3

很肯定我漏掉了一些小东西。我正在对一个对象数组应用javascript循环。通过循环,我将对api进行异步调用,以更新数据。我想要的是foreach循环在进入下一个迭代之前等待承诺的实现。

这是代码示例

代码语言:javascript
运行
复制
entriesToUpdate.forEach(function (item) {   
    SomeService.updateEntry(item).then(function (res) {
        //Do some stuff here.
    });
    //Wait for the above promise to be fulfilled before going to next iteration 
});
EN

Stack Overflow用户

回答已采纳

发布于 2016-01-20 04:05:17

您可以定义一个函数来递归地处理条目,如下所示:

代码语言:javascript
运行
复制
function updateEntries(entries, i) {
  if(i < entries.length) {
    return SomeService.updateEntry(entries[i]).then(function() {
      return updateEntries(entries, i+1);
    });
  }
}
updateEntries(entriesToUpdate, 0);

或者你可以把你的承诺串起来。

代码语言:javascript
运行
复制
var promise = SomeService.updateEntry(entriesToUpdate[0]);
for(var i = 1; i < entriesToUpdate.length; i++) {
  promise = promise.then(function() {
    return SomeService.updateEntry(entriesToUpdate[i]);
  });
}

(这些示例可能不起作用;我不熟悉AngularJS的承诺。只有ES6承诺)

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34891323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档