Начиная с 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);
Теперь я не помню, что это максимальный стек, прежде чем я получаю поток stackover с узлом, но я думаю, с 10 000 элементов, она не будет делать. Интересно, есть ли другие способы справиться с этим, если да, каковы они? спасибо
Ну, асинхронные функции помогут переполнению стека в качестве обратного вызова будет в другом стек вызовов. Но, выйдя в другой стек, он «возвращает» бесполезно. –
взгляните на [async] (https://github.com/caolan/async) –