【发布时间】:2018-03-01 11:28:25
【问题描述】:
我的 node.js 应用程序中有以下函数,它遍历一个数组并在其上执行某个函数:
var splitStatements = ['1','2','3']; // this is simplified
splitStatements.forEach(function(statement) {
// `statement` is written into the database
// the response is obtained and modified as `response`
console.log(response);
});
如何确保无论forEach函数内部的函数多么复杂,数组的每个元素都会被一个一个地处理,使得结果输出类似于
1 modified
2 modified
3 modified
实际上我有时会得到类似的东西
1 modified
3 modified
2 modified
取决于splitStatements 数组的每个元素的复杂程度。
我知道发生上述情况是因为代码执行是异步的,那么确保在异步执行时,每个下一个过程确保前一个过程已经执行以便启动的最佳实践方法是什么?
【问题讨论】:
-
Async.js 有方便的方法来做到这一点。
-
response = await database.write(statement)
标签: javascript node.js asynchronous foreach waterfall