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