Mein Ziel ist es, Datensätze in einer MongoDB-Sammlung in einer asynchronen foreach-Schleife zu speichern. Unten ist der Code, der für sich selbst spricht.Callback wird nicht aufgerufen, während collection.save() in der asynchronen foreach-Schleife im Knoten js verwendet wird
async.forEach(data, function(item, callback) {
var object = new Collection_Object();
// errorLog.push(sdb);
object.save(function(error) {
count++;
console.log(count);
if(error) {
console.log("inside error");
count--;
}
//callback();
});
callback();
}, function() {
//This is the block which should be called after foreach.
res.json(data);
});
Nun, was passiert ist der Fluss überspringt den save
Teil und direkt springt auf den Block, der nach forEach
aufgerufen werden soll.
Wenn ich den save
Teil kommentieren, funktioniert der Rückruf erwartungsgemäß ordnungsgemäß. Ich sehe nicht, wo ich Fehler mache. Kann collection.save()
sein soll nicht so sein. Bitte führen.
dup Frage sein könnte: http://stackoverflow.com/questions/10390041/node-js-using -the-async-lib-async-foreach-mit-objekt – funcoding
Warum haben Sie den Aufruf von callback() in save() auskommentiert? Genau dort sollte es heißen. –
Ich glaube, ich habe vergessen, die untenstehende callback() Funktion auskommentieren. Es funktionierte. Ich Idiot. –