Chr*_*ois 21 javascript overriding node.js promise bluebird
我想使用bluebird实现Promise/A +开放标准并覆盖原生ES6 Promises.我还希望bluebird实现在我随后导入的模块中随处可用,而不必在每个模块中都需要它.Bluebird的入门页面告诉我:
var Promise = require("bluebird");
Run Code Online (Sandbox Code Playgroud)
,这会导致覆盖本机Promise元素.因为bluebird是规范的超集,所以它不会破坏现有代码,因此应该是安全的.
但是,因为我知道这被认为是不好的做法:
当我想在节点应用程序的基本脚本中包含它时,我很谨慎:
import Promise from 'bluebird';
global.Promise = Promise;
Run Code Online (Sandbox Code Playgroud)
这是一种不好的做法吗?我应该坚持在每个文件中导入bluebird吗?
Ben*_*aum 17
在过去的4年中,我已经在我的代码中完成了数百次,因此在每月1000万次下载中有很多其他的.
官方支持将本机实现与bluebird交换.
我做
const Promise = require("bluebird");
Run Code Online (Sandbox Code Playgroud)
在每个文件的基础上.请注意,通常您可以一次性宣传您的API,然后通常避免调用Promise- 最多调用.resolve.