Javascript/Angularjs :等待承诺实现,然后再进入foreach Loop中的下一次迭代
Javascript/Angularjs : wait for promise to be fulfilled before going to the next iteration in foreach Loop
很确定我在这里错过了一些小东西。我正在对象数组上应用一个 javascript foreach 循环。在循环中,我正在对 api 进行异步调用以更新数据。我想要的是 foreach 循环等待承诺实现,然后再进行下一次迭代。
下面是代码示例
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
});
您可以定义一个函数来递归处理条目,如下所示:
function updateEntries(entries, i) {
if(i < entries.length) {
return SomeService.updateEntry(entries[i]).then(function() {
return updateEntries(entries, i+1);
});
}
}
updateEntries(entriesToUpdate, 0);
或者你可以把你的承诺链起来。
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承诺)
相关文章:
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- JS迭代一个数组,同时更改另一个数组
- 在js中迭代一个数组,同时只将整数复制到另一个数组
- 当接收到AJAX内容时,每次$.的下一次迭代
- 为什么这个 JavaScript switch 语句(在 for 循环内)保留了上一次迭代的值
- 异步mongodb更新循环中最后一次迭代后的重定向
- for循环只迭代一次
- 使用 promises/dedelay 异步迭代一组文件
- 当我将src附加到图像时,每N秒迭代一次
- 当试图从元素中删除类时,For循环只迭代一次
- 不能让.offset()方法在迭代一组列表项时工作
- 每个函数在XML中迭代两次
- 对对象数组只迭代一次
- Javascript - for循环只迭代一次
- Angular ng-option:迭代一个数字数组,以显示另一个数组的内容,但在ng-model中选择了索引
- 迭代一个数并按降序排列
- 迭代一周中的每一天
- 迭代一次的行值并添加
- 自定义JSON.stringify不能对整个对象进行stringify,但在迭代一层时有效
- JavaScript在同一循环中每x次迭代一次循环