1
我试图只在forEach循环内的所有承诺都满足时才返回结果(feedItemsArray),但是代码在所有承诺返回前执行。确保所有承诺事先被退回的正确方法是什么?Node.js:forEach在承诺履行前完成承诺
function retrieveFeed(req, res) {
return FeedItem.find().exec()
.then(function(feedItems) {
var feedItemsArray = [];
feedItems.forEach(function(feedItem){
// Do some stuff on feedItem
return Comment.find({feedItem_id : feedItem._id}).exec()
.then(function(comments){
// Do some stuff on comments
return feedItemsArray.push(feedItem);
})
})
return prepareJSONObject(feedItemsArray);
})
.then(handleEntityNotFound(res))
.then(respondWithResult(res))
.catch(handleError(res));
}
感谢Abhyudit,你的方法完美。 – Karl