我想使用bluebird实施Promise/A+开放标准并覆盖native ES6 Promises。我还希望bluebird实现在我随后导入的模块中随处可用,而不必在每个模块中都需要它。 Bluebird的Getting started页面告诉我:
var Promise = require("bluebird");
,这会导致覆盖本机Promise元素。因为bluebird是规范的超集,所以它不会破坏现有代码,因此可以安全使用。
但是,因为我知道这被认为是不好的做法:
,当我想将它包含在节点应用程序的基本脚本中时,我很谨慎:
import Promise from 'bluebird';
global.Promise = Promise;
这是一种不好的做法吗?我应该坚持在每个文件中导入蓝鸟吗?
答案 0 :(得分:17)
在过去的4年里,我已经在我的代码中完成了数百次这样的事情,因此在每月1000万次下载中有很多其他的。
正式支持将本机实现与bluebird交换。
我做
const Promise = require("bluebird");
基于每个文件。请注意,您通常可以宣传您的API一次,然后通常避免拨打Promise
- 最多拨打.resolve
。