我使用node.js和mongoDB以及promises.js。我必须在promise变量中调用一个异步方法,但我不能做一个比()更多的异步方法。因为它在循环中。代码是这样的:我怎样才能像同步方法调用异步方法?
collection1.find({'key': 'value'})
.then(function(matches){
//loop starts
matches.forEach(function(match){
var currentUser = collection2.find({"_id" : match._user})
console.log(currentUser); //undefined
})
})
正如你可以看到currentUser是一个未定义的变量。我该如何解决这个问题?
不应该currentUser是一个承诺? –
另外,收集一份您想要拉出并在一趟旅程中全部拉出的ID列表不是更好吗? –
(这将巧合地解决你的问题,并且性能更高) –