gpt4 book ai didi

javascript - Mongoose - 为什么我们在设置 mongoose 模块时会生成 "mongoose.Promise = global.Promise"?

转载 作者:IT老高 更新时间:2023-10-28 22:59:41 35 4
gpt4 key购买 nike

我正在与 Mongoose 合作。我见过很多开发者发出以下命令:

mongoose.Promise = global.Promise;

然后我很好奇 mongoose.Promise 的原始值是什么。我在编辑器中输入了以下命令:

const mongoose = require("mongoose");

console.log("promise: ", mongoose.Promise);

我的控制台返回了我:

promise: function Promise() { [native code] }

好的,既然 Mongoose 的 promise 已经返回了本地代码,为什么还要创建命令 mongoose.Promise = global.Promise 呢?没看懂,如果有人能帮我们理解就好了,

谢谢

最佳答案

这是来自旧示例的遗留代码,Mongoose 5 不需要。

Mongoose 4 依赖于它自己的 Promise 实现,mpromisemongoose.Promise 不一定是 Promise 全局的。

作为 Mongoose 4 documentation状态:

Mongoose 5.0 will use native promises by default (or bluebird, if native promises are not present) but still support plugging in your own ES6-compatible promises library. Mongoose 5.0 will not support mpromise.

虽然关于 bluebird 的说法不再正确; Mongoose 5 放弃了对没有原生 promise 的 Node 版本的支持。

mongoose.Promise = global.Promise;

如果在导入 Mongoose 后将 global.Promise 分配给另一个实现(例如 Bluebird),则可能仍然需要,但更好的方法是分配 global.Promise = Bluebird 更早。

关于javascript - Mongoose - 为什么我们在设置 mongoose 模块时会生成 "mongoose.Promise = global.Promise"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51862570/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com