Así que tengo código que se ve algo como:Node.js - A la espera de múltiples funciones para completar
var data = someobject;
for(var x in data){
mongo.findOne({ _id:data[x]._id },function(e,post){
if(post != null){
post.title = 'omg updated';
post.save(function(){
console.log('all done updating');
});
}
});
}
// I need all^those functions to be done before continuing to the following function:
some_function();
He mirado en la biblioteca asíncrono, que utilizo para paralelo cuando tengo un número determinado de funciones I necesidad de ejecutar en 1 vez. Pero no estoy seguro de cómo lograr el efecto deseado.
Todas estas funciones se pueden ejecutar en paralelo, que sólo tiene que saber cuando todo está hecho.
No estoy seguro de si está buscando una biblioteca decente, pero si solo necesita algo trivial, puede tener un contador: configúrelo inicialmente en 'Object.keys (data) .length' y disminuya la devolución de llamada' .save' - cuando haya alcanzado '0' , ejecuta 'some_function()'. – pimvdb
@pimvdb que funcionaría (era exactamente lo que estaba pensando), sin embargo, es un pequeño truco para comenzar a funcionar, para obtener la forma correcta de hacerlo, uno necesitaría algún sistema de mensajería de pub/sub (no obtener demasiado desordenado con eventos y devoluciones de llamada) –