Пакет Node mongodb будет возвращать Promise от большинства (возможно, всех?) Его API на основе обратного вызова, если вы не передадите функцию обратного вызова.Например, вы можете позвонить db.collection('paths').then(function (collection) { … })
.Затем вы можете связать обещания следующим образом:
return MongoClient.connect(url)
.then(function (client) {
return client.db('mydb');
}).then(function (db) {
return db.collection('paths');
}).then(function (collection) {
return collection.find({}).toArray();
}).then(function (path) {
conv.ask(path);
});
Вы также можете использовать конструктор new Promise((resolve, reject) => …)
, чтобы обернуть все, что является обратным вызовом, основанным на Promise API.В документации Promise по MDN есть хороший пример здесь .