投稿のコレクションとユーザーのコレクションがあります。投稿のリストを返すときに、ユーザーへの参照を解決したいと考えています。これは、ユーザーのすべての行に対して非同期呼び出しを行うことを意味します。monk が promise を返すときは、「完了」または「成功」に応答するものを返します。Q は、"then" に応答する何かを期待します。すべてのユーザーが投稿に取り込まれるのを待つために Q.all を使用する必要がありますが、モンクの約束スタイルではうまく機能しません。
これが私の試みです。
exports.posts = function (req, res) {
req.posts.find()
.complete(function(err, posts) {
handle(err, res, posts);
var postsWithUsers = posts.map(function(post) {
return req.users.findOne({_id: post.userId}).complete(function(err, result) {
post.user = result;
});
});
Q.all(postsWithUsers.map(function(monkPromise) {
monkPromise.then = monkPromise.complete
}), function(err, results) {
console.log("done with all posts");
});
});
};