我使用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列表不是更好嗎? –
(這將巧合地解決你的問題,並且性能更高) –