Je viens de commencer à travailler avec NodeJs et à utiliser des fonctions asynchrones. J'ai essayé de faire plusieurs appels à MongoDB à partir d'une boucle for, et j'ai besoin d'attendre que tous les appels soient terminés avant de passer à l'étape suivante.
J'ai essayé de l'implémenter en utilisant async, mais il semble que toutes mes variables en dehors des appels ne soient pas accessibles. Comment faire pour que cela fonctionne ?
var sample = req.body; // sample will be an array list of items
var stringList = "";
var calls = [];
for(var i = 0; i < sample.length; i++) {
console.log(sample[].item) // i can print it here
calls.push(function(callback) {
db3.table.find({column1:sample[i].item}, function(err, temp){ // i hit an error here, it cannot find sample[i].item...
if (err)
return callback(err);
stringList = stringList + temp[0].item2;
callback(null, stringList );
});
});
}
async.parallel(calls, function(err, result) {
if (err)
return console.log(err);
console.log(result); // I am expecting a string of all the item2 returned and concatenated previously
});