我有一個for-loop語句和一個異步MongoDB內部循環體。我想要做的是從我的MongoDB數據庫中查詢find
,並將結果推送到數組中。如何同步NodeJS中的MongoDB異步查詢
下面是代碼:
function() arrResult() {
var arr = [];
for(...) {
collection.find({ foo: i }, function (err, cursor) {
arr.push(cursor);
}
}
return arr;
}
但很明顯,該函數的返回值將是一個空數組。
我想用Q
模塊來解決這個問題。有沒有解決方法?
太好了。你能用Q.defer()來完成嗎? –
@AshshinMehrabani:爲什麼我需要?一個[從不使用'Q.defer'](https://github.com/petkaantonov/bluebird/wiki/Promise-anti-patterns#wiki-the-deferred-anti-pattern)。 'Q.ninvoke'和另一個[回調函數方法](https://github.com/kriskowal/q/wiki/API-Reference#wiki-promise-for-function-methods)完全避免了這一點。 – Bergi
僅用於教育目的。 –