Я хочу изменить Тэги формат, который я получаю в форме одной из коллекций. Тэги данные содержат некоторые KC идентификаторы в массиве, который я использую, чтобы получить KC данных и вставить в TagUnit, чтобы получить окончательный формат ответа.Требуется нулевой запрос обратного вызова для нумерации
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));
Но я не получаю желаемого результата. Выступает Тег: данные в исходном формате вместо форматированного. Думаю, это связано с циклом событий. Буду признателен, если кто-то может мне помочь.
** Редактировать: ** Я использую MongoDB в качестве базы данных и мангуста в качестве ORM.
Вы смотрели в [обещания] (http://www.html5rocks.com/en/tutorials/es6/promises/?redirect_from_locale=de)? Вы правы, что ваша проблема связана с циклом событий. 'newTags' не вычисляется полностью наиболее вероятно при вызове' response.send'. – markusthoemmes