2
我想爲mongojs
collection.find方法編寫我自己的包裝器,它應該返回指定查詢選擇的集合項目(查詢尚未實現,它應該簡單地選擇所有結果)。問題是我沒有收回一系列結果。似乎find方法做了某種異步回調。那麼,我該如何強制同步調用或強制腳本等待呢?collection.find mongojs同步回調
Collection.prototype.find = function() {
var result = new Array;
if (Bridge.isServer) {
db.collection(name).find(function(err, items) {
items.forEach(function(item) {
result.push(item);
});
});
}
return result;
}
不是你想要的答案,但正確的答案就在這裏:http://stackoverflow.com/questions/3919075/javascript-design-patterns-dealing -with-unwanted-asynchrony?rq = 1 – mjhm
謝謝,但添加另一個回調並不是我想要的,我想強制我的函數等待結果從數據庫返回並返回它們。我知道這會阻止我的系統等待我等待。 –
Node.js是異步的,任何可能的阻塞都是巨大的反模式,並且會被任何力量阻止。 沒有什麼你不能使用異步回調,所以請使用它們,因爲它們實際上使node.js快速。 – moka