我试图处理一个包含10k项目的数组,以便在每一行上设置一个新属性。
_async.mapLimit(collection, 100, function (row, cb){
row.type = "model";
cb(null, row);
}, function (err, collection){
if(err) throw(err);
console.log(collection);
});
然后我收到此错误:
RangeError: Maximum call stack size exceeded
这是什么?我尝试使用async eachSeries,但同样的情况发生了。
答案 0 :(得分:7)
async
库期望您在回调中执行异步操作,以便在等待异步操作完成时让堆栈展开。
如果您只对每个元素执行同步处理,只需使用for
循环:
for (var i=0; i<collection.length; ++i) {
collection[i].type = 'model';
}