Mongoskin MongoClient.connect 同步

Mongoskin MongoClient.connect sync

在模块 mongoskin 中,当获取数据库对象 mongoskin 以同步方式执行此操作时,因此代码:

var db = mongoskin.db(url, {
    native_parser: true
});
var myCollection = db.collection('myCollection');

我很好奇,他们是如何做到这一点的?我一直在查看 mongoskin 代码,但我并不完全理解它。

在这里,您可以看到 mongoskin 对其进行了简化:

https://github.com/kissjs/node-mongoskin#dbcollection-callback origin vs. mongoskin

有人知道 mongoskin 是如何将异步代码变成同步代码的吗?

他们在 readme 的开头说:

We make some common use functions in promise mode, we call it SkinClass of a normal Class. And the API is almost same with official API.

db.collection('myCollection'); returns SkinCollection - 本机 Collection 的包装器,可用时将使用 Collection

魔术住在这里:https://github.com/kissjs/node-mongoskin/blob/master/lib/utils.js