【发布时间】:2012-12-21 10:42:15
【问题描述】:
我正在尝试为mongojscollection.find 方法编写自己的包装器,该方法应该返回指定查询选择的集合项(查询尚未实现,它应该只选择所有结果)。问题是我没有得到一系列结果。看起来 find 方法做了某种异步回调。那么如何强制同步调用或强制我的脚本等待呢?
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;
}
【问题讨论】:
-
不是你想要的答案,但正确的答案在这里:stackoverflow.com/questions/3919075/…
-
谢谢,但添加另一个回调不是我想要的,我想强制我的函数等到结果从数据库返回然后返回它们。我知道这会在我等待的时候阻塞我的系统。
-
Node.js 是异步的,任何可能的阻塞都是巨大的反模式,并且会被任何力量阻止。异步回调没有什么不能做的,所以请使用它们,因为它们实际上使 node.js 更快。
标签: javascript node.js mongodb mongojs