相互に依存する 2 つのデータベース クエリを作成しなければならない場合がたくさんあります。しかし、js の非同期性のため、これらのクエリ リクエストの順序を設定することはできません。私が使用している回避策は、クエリの 1 つを別のクエリのコールバックに配置することです。私のアプローチはうまくいっているようですが、これを行うためのより良い方法があるかどうか知りたいですか?
コード例:
app.get('/tweet', function(req,res){
User.findOne({ twitterID: req.user.id },
function(err, user) {
if (user){
var votedPosts = user.votedPosts;
Post.find(function (err, posts) {
if(posts){
for (var i = 0; i < posts.length; i++){
for (var j = 0; j < votedPosts.length; j++){
if(votedPosts[j]._id == posts[i]._id){
posts[i].votetype = votedPosts[j].votetype;
}
else{
console.log("this is getting called");
posts[i].votetype = 0;
}
}
}
res.send(posts);
}
});
}
});
});