Ich möchte die Tags Format ändern, die ich aus einer der Sammlungen abholen. Stichworte Daten enthalten einig KC ids in einer Anordnung, die ich KC Daten und stecken in TagUnit zu bekommen endgültiges Antwort-Format zu bekommen verwenden.Knoten For-Loop-Rückruf erforderlich
var newTags = Tags.map(function(TagUnit) {
for (var i = 0; i < TagUnit.kcs.length; i++) {
KCArray = [];
KC.findById(TagUnit.kcs[i], function(error, data) {
KCMap = {};
KCMap['kc_id'] = data._id;
KCMap['kc_title'] = data.title;
KCArray.push(KCMap);
if (KCArray.length == TagUnit.kcs.length) {
TagUnit.kcs = KCArray;
}
});
}
return TagUnit;
});
response.send(JSON.stringify(newTags));
Aber ich bekomme nicht das gewünschte Ergebnis. Antwort gibt Tag Daten in initial für statt formatierter Form aus. Ich denke, es ist aufgrund der Ereignisschleife. Ich wäre dankbar, wenn mir jemand dabei helfen könnte.
** Bearbeiten: ** Ich verwende MongoDB als Datenbank und Mungo als ORM.
Haben Sie in [Versprechen] (http://www.html5rocks.com/en/tutorials/es6/promises/?redirect_from_locale=de) geschaut? Du hast recht, dass dein Problem auf die Event-Schleife zurückzuführen ist. 'newTags' wird am wahrscheinlichsten nicht beim Aufruf von 'response.send' berechnet. – markusthoemmes