mpm*_*mpm 4 javascript mongoose mongodb node.js express
从express和mongoose开始,我经常需要对集合进行一些批处理操作.然而,它通常涉及回调,这对于如何在nodejs中编码并发而言是一种痛苦.所以基本上
//given a collection C
var i = 0;
var doRecursive = function(i){
if(i<C.length){
C[i].callAsync(err,result){
i=+1;
return doRecursive(i);
}
}else{
return done();
}
}
doRecursive(i);
Run Code Online (Sandbox Code Playgroud)
现在我不记得在获得带节点的堆栈流之前最大堆栈是什么,但我想有10 000个元素,它不会这样做.我想知道是否还有其他方法可以解决这个问题,如果是的话,它们是什么?谢谢
如果目标是异步迭代集合,则可以使用许多控制流库.
async.reduce(C, 0, function (memo, item, callback) {
item.callAsync(function (err, result) {
if (err) {
callback(err);
} else {
callback(null, memo + result);
}
});
}, function (err, result) {
// ...
});
Run Code Online (Sandbox Code Playgroud)
注意:目前还不完全清楚你想要得到什么价值doRecursion,所以这只是使用加法作为例子.