iRo*_*tia 6 javascript mongoose node.js
当我偶然发现台词时,我正在查看猫鼬文档
猫鼬查询不是承诺。为了方便起见,它们具有.then()函数用于co和async / await。如果您需要完整的承诺,请使用.exec()函数。
在这个例子中
var query = Band.findOne({name: "Guns N' Roses"});
assert.ok(!(query instanceof Promise));
// A query is not a fully-fledged promise, but it does have a `.then()`.
query.then(function (doc) {
// use doc
});
// `.exec()` gives you a fully-fledged promise
var promise = query.exec();
assert.ok(promise instanceof Promise);
promise.then(function (doc) {
// use doc
});
Run Code Online (Sandbox Code Playgroud)
现在,当他们说完全承诺时,我并没有理解他们的意思,就像对我来说.then()应该是升职,然后它还允许异步和等待。
那么有人可以向我解释完全承诺的含义是什么?
参考链接:https : //mongoosejs.com/docs/promises.html#queries-are-not-promises
这意味着,根据Promises / A +规范的定义,查询返回的值才是ables,而不是实际实例。这意味着它们可能不具有Promise的所有功能(例如和方法)。实际实例将是“完全成熟”的承诺。PromisecatchfinallyPromise
英语术语“ 完全成熟 ”的意思是“完整”或“充分发展”。它来自鸟类学(或至少与鸟类有关的术语):一只成年羽毛的雏鸡(一只幼鸟)是“成熟的”;如果它的所有成年羽毛都完全覆盖了其羽绒大衣,那么它就是成熟的。
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |