【发布时间】:2013-10-21 20:59:00
【问题描述】:
对 Node.js 使用 Async Libeary,尝试在 for 循环中引用变量不起作用。
例如:
var functionArray = []
, x;
for(x = 0; x < 5; x++) {
functionArray.push(function (callback) {
console.log(x);
callback();
});
}
async.series(functionArray, function (err, results) {
console.log("Finished");
});
输出是:
5
5
5
5
5
这似乎是特定于 Async 库的。当您在没有库的情况下运行函数时,如下所示:
for(x = 0; x < 5; x++) {
functionArray[x](function () {});
}
输出是:
0
1
2
3
4
我在使用 async.parallel 函数时注意到了同样的事情。
有没有办法解决这个问题?如果你需要运行一堆类似的函数,只是它们里面有不同的数字(例如,当索引一个数组时)并且你需要它们一个接一个地运行而不是异步运行呢?这如何实现?
【问题讨论】:
标签: javascript node.js for-loop async.js