【发布时间】:2013-07-11 10:08:42
【问题描述】:
从 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);
现在我不记得在使用 node 获得 stackover 流之前的最大堆栈是多少,但我猜有 10 000 个元素,它不会这样做。 我想知道是否有其他方法可以处理这个问题,如果是,它们是什么? 谢谢
【问题讨论】:
-
嗯,异步函数将有助于堆栈溢出,因为回调将位于不同的调用堆栈中。但是,通过分解成不同的堆栈,它会使
return变得毫无用处。 -
看看async
标签: javascript node.js mongodb express mongoose