Tengo un bucle que tiene una llamada asincrónica dentro de él, con una devolución de llamada. Para poder continuar, necesito que la devolución de llamada se active durante todo el ciclo, para luego mostrar los resultados del ciclo.Node.js: esperando las devoluciones de llamada en un bucle antes de pasar a
Todo camino que he tratado de controlar esto no funciona (Paso han intentado, Tame.js, async.js, y otros) - ¿Alguna sugerencia sobre cómo avanzar?
array = ['test', 'of', 'file'];
array2 = ['another', 'array'];
for(i in array) {
item = array[i];
document_ids = new Array();
for (i2 in array2) {
item2 = array2[i2];
// look it up
mongodb.find({item_name: item2}).toArray(function(err, documents {
// because of async,
// the code moves on and calls this back later
console.log('got id');
document_ids.push(document_id);
}))
}
// use document_ids
console.log(document_ids); // shows []
console.log('done');
}
// shows:
// []
// done
// got id
// got id
Muchas gracias! Modifiqué esto con la ayuda de async.js y lo puse en funcionamiento. –