Я хочу использовать bluebird реализация Promise/A+ открытого стандарта и переопределить native ES6 Promises. Я также хочу, чтобы реализация bluebird была доступна везде в моих импортированных впоследствии модулях без необходимости требовать ее в каждом из них. Getting started страница Bluebird рассказывает мне:Могу ли я переопределить обещание ES6 по реализации bluebird в глобальной области узла?
var Promise = require("bluebird");
, что приводит к перекрывая родной элемент Promise. Поскольку bluebird является надмножеством спецификации, он не нарушит существующий код и, следовательно, должен быть безопасен в использовании.
Однако, потому что я знаю, что это считается плохой практикой:
- продлить или заменить язык туземцев и
- определяют глобалам для использования в требующих цепи, которая зависит от него
, Я опасаюсь, когда хочу включить это в базовый сценарий приложения-узла:
import Promise from 'bluebird';
global.Promise = Promise;
Это плохая практика? Должен ли я придерживаться импорта bluebird в каждый отдельный файл?
Просто потому, что мне интересно: почему вы хотите переопределить реализацию Promise? –
Как правило, более быстрые, безопасные, лучшие ошибки и невероятно полезные надстройки API. Проверьте их: http://bluebirdjs.com/docs/why-bluebird.html http://bluebirdjs.com/docs/api-reference.html –
> * Я также хочу, чтобы реализация bluebird была доступна везде в моем последующем импортированных модулей без необходимости требовать их в каждом из них *. Зачем? 'var Promise = require (" bluebird ");' явно, ясно, самодокументируется, а не магия. –