在很多情况下我必须进行两个相互依赖的数据库查询。但是由于 js 的异步特性,我无法设置这些查询请求的顺序。我一直在使用的解决方法是将其中一个查询放在另一个查询的回调中。我的方法似乎可行,但我只想知道是否有更好的方法来做到这一点?
示例代码:
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);
}
});
}
});
});