Desidero utilizzare l'implementazione bluebird dello standard aperto Promise/A+ e sovrascrivere native ES6 Promises. Voglio anche che l'implementazione bluebird sia disponibile ovunque nei miei moduli importati successivamente senza doverla richiedere in ognuno di essi. Pagina di Bluebird Getting started mi dice di:È possibile sovrascrivere la promessa di ES6 mediante l'implementazione di bluebird nell'ambito globale del nodo?
var Promise = require("bluebird");
, che si traduce in ignorando l'elemento Promessa nativo. Poiché bluebird è un superset della specifica, non romperà il codice esistente e quindi dovrebbe essere sicuro da usare.
Tuttavia, perché so che è considerato cattiva pratica di:
- estendere o sostituire nativi lingua, e
- definire variabili globali per l'impiego in una catena di richiedere che dipende da esso
, Sono cauto quando voglio includere questo nello script di base di un'app di nodo:
import Promise from 'bluebird';
global.Promise = Promise;
È una cattiva pratica? Dovrei limitarmi a importare bluebird in ogni singolo file?
Solo perché sono curioso: perché vuoi ignorare l'implementazione di base Promise? –
Errori generalmente più veloci, più sicuri, migliori e componenti aggiuntivi API incredibilmente utili. Controlla quelli fuori: http://bluebirdjs.com/docs/why-bluebird.html http://bluebirdjs.com/docs/api-reference.html –
> * Desidero anche che l'implementazione bluebird sia disponibile ovunque nel mio seguito moduli importati senza doverli richiedere in ognuno di essi *. Perché? 'var Promise = require (" bluebird ");' è esplicito, chiaro, auto-documentante e non magico. –