2

我正在尝试为 collection.find 方法编写自己的包装器,该mongojs方法应该返回由指定查询选择的集合项(查询尚未实现,它应该只选择所有结果)。问题是我没有得到一系列结果。看起来 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;
}
4

1 回答 1

0

我认为你应该考虑让你的函数异步,但是如果你坚持写同步函数,有一个github 项目可以让异步函数同步。

这是另一个处理同一主题的 SO 帖子:将异步函数转换为同步函数

于 2013-11-05T19:25:38.530 回答