elije la mejor librería de promesas disponible (o le deja la opción al usuario)
idioma: también disponible en: -
Basado en any-promise
Cuando se usa con Travis-CI best-promise seleccionará al azar una librería Promise.
En el resto de los casos funciona igual que any-promise.
La lista de módulos Promise es:
Si no hay ninguna librearía instalada any-promise intenta exportar el módulo global Promise
(ya sea nativo o el polyfill).
Se puede especificar la librería elegida en cada momento usando la variable de ambiente PROMISE_IMPL
o también se puede usar la variable de ambiente PROMISE_RANDOM
para que sortee aunque no esté en Travis-CI.
var Promise = require('best-promise').Promise;
return Promise
.all([xf, f, init, coll])
.then(fn);
return new Promise(function(resolve, reject){
try {
resolve(item);
} catch(e){
reject(e);
}
});
Una forma común de las promesas es empezar la primera función dentro de un then, de ese modo si la expresión que arma los parámetros lanza un error se captura dentro de la cadena de promesas
var Promises = require('best-promise');
var fs = require('fs-promise');
Promises.start(function(){
return fs.stat(path+path.sep+fileName);
}).then(function(stat){
// ...
});