我正在和猫鼬一起工作。我见过很多开发人员发出以下命令:
mongoose.Promise = global.Promise;
然后我很好奇 mongoose.Promise
的原始值是多少。我在我的编辑器中输入了以下命令:
const mongoose = require("mongoose");
console.log("promise: ", mongoose.Promise);
我的控制台返回给我:
promise: function Promise() { [本地代码] }
好的,那么为什么要执行命令 mongoose.Promise = global.Promise
因为 Mongoose 的承诺已经返回了本地代码?我不明白这一点,如果有人可以帮助我们理解,那就太好了,
谢谢
原文由 Webwoman 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是 Mongoose 5 不需要的旧示例中的遗留代码。
Mongoose 4 依赖于它自己的 promise 实现,
mpromise
。mongoose.Promise
不一定Promise
全局。正如 Mongoose 4 文档 所述:
尽管关于蓝鸟的说法不再正确; Mongoose 5 放弃了对没有原生承诺的 Node 版本的支持。
如果
global.Promise
在导入 Mongoose 后被分配了另一个实现(例如 Bluebird),可能仍然需要,尽管更好的办法是更早地分配global.Promise = Bluebird
。