2013-01-07 65 views
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; 
} 
+2

不是你想要的答案,但正確的答案就在這裏:http://stackoverflow.com/questions/3919075/javascript-design-patterns-dealing -with-unwanted-asynchrony?rq = 1 – mjhm

+0

謝謝,但添加另一個回調並不是我想要的,我想強制我的函數等待結果從數據庫返回並返回它們。我知道這會阻止我的系統等待我等待。 –

+1

Node.js是異步的,任何可能的阻塞都是巨大的反模式,並且會被任何力量阻止。 沒有什麼你不能使用異步回調,所以請使用它們,因爲它們實際上使node.js快速。 – moka

回答