javascript - promises - promise typescript
¿Puedo anular la implementación de Promise by bluebird de ES6 en el ámbito global del nodo? (1)
Quiero utilizar la implementación de Promise/A+ de Promise/A+ open standard y anular las promesas ES6 nativas . También quiero que la implementación de bluebird esté disponible en todas partes en mis módulos importados posteriormente sin tener que requerirla en cada uno de ellos. La página de inicio de Bluebird me dice que:
var Promise = require("bluebird");
, lo que resulta en anular el elemento de Promise nativo. Debido a que bluebird es un superconjunto de la especificación, no romperá el código existente y, por lo tanto, se supone que es seguro de usar.
Sin embargo, porque sé que se considera una mala práctica:
- extender o reemplazar el idioma nativo, y
- Definir globales para su uso en una cadena de requisitos que depende de ello.
, Desconfío cuando quiero incluir esto en el script base de una aplicación de nodo:
import Promise from ''bluebird'';
global.Promise = Promise;
¿Es esta una mala práctica? ¿Debo limitarme a importar Bluebird en cada archivo?
Lo he hecho cientos de veces en mi código durante los últimos 4 años y, por lo tanto, tengo muchos otros entre los 10 millones de descargas mensuales.
Se admite oficialmente para intercambiar la implementación nativa con bluebird.
hago
const Promise = require("bluebird");
Por archivo. Tenga en cuenta que, por lo general, puede prometer sus API una vez y, por lo general, evitar llamar a Promise
: llamar a la mayoría .resolve
.