我需要使用async.each
或async.eachSeries
或async.whilst
等功能处理大量条目(数万条)。
几乎可以说我有使用async
,因为我打算为每个条目调用一些查询,使代码异步。
不幸的是,使用async
的函数,调用堆栈消耗得非常快,导致RangeError: Maximum call stack size exceeded
。
有没有办法调整async
以防止出现此问题?迭代实现可以解决问题。是否考虑过这个问题的替代库?
这是一个显示问题的示例代码段:
async = require('async');
a = []
for(i = 0; i < 10000000; i++) {
a[i] = i;
}
async.eachSeries(a,function(element,callback) {
console.log(element);
callback();
},function(err){
if(err){
console.log("error:",err);
}
console.log("finished.");
});