Ich verwende Koa.js Framework und Mongoose.js Modul.forEach Verwendung von Generatoren in Node.js
var res = yield db.collection.findOne({id: 'my-id-here'}).exec();
Aber ich brauche auszuführen diese Zeile für jedes Element eines Arrays namens ‚Artikel‘:
Normalerweise ein Ergebnis von MongoDB ich Code wie diesen zu bekommen.
items.forEach(function(item) {
var res = yield db.collection.findOne({id: item.id}).exec();
console.log(res) // undefined
});
Aber dieser Code läuft nicht, da die Ausbeute in der Funktion ist. Wenn ich dies schreibe:
items.forEach(function *(item) {
var res = yield db.collection.findOne({id: item.id}).exec();
console.log(res) // undefined
});
Ich bekomme nicht das Ergebnis in res Variable entweder. Ich habe versucht, 'generator-foreach' Modul zu verwenden, aber das hat nicht so funktioniert.
Ich weiß, dass dies mein Mangel an Wissen über die Sprachkompetenz von Node.js ist. Aber könnt ihr mir helfen, einen Weg zu finden, wie das geht?
Was genau haben Sie mit 'generator-foreach' probiert? – loganfsmyth
Ich ersetzte nur forEach mit dem Generator-foreach. Der Rest des Codes ist gleich. Können Sie mein Code-Snippet ändern und sicherstellen, dass es funktioniert? –