我想更改標籤格式,我從其中一個集合中獲取。 標籤數據包含在陣列中的一些KC IDS裏面我是用得到KC數據和TagUnit插入得到最終響應的格式。節點for循環回調所需
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。
你看過[promise](http://www.html5rocks.com/en/tutorials/es6/promises/?redirect_from_locale=de)嗎?你說得對,你的問題是由事件循環引起的。當調用'response.send'時,'newTags'不會被最完全計算。 – markusthoemmes