¿Cómo funciona promisifyAll, o cuáles son los requisitos para que funcione?
En una biblioteca de promesas, bluebird tiene la función promisifyAll u otras bibliotecas similares que afirman convertir funciones asíncronas con patrones de devolución de llamada en promesas, es decir.resolve()
, reject()
odone()
..¿Entonces, cómo funciona?
Por ejemplo:
function myAsync1 (data, url, callBack) {...}
y si lo pongo
Promise.promisify(myAsycn1);
entonces mi función funcionará así ...
myAsync1('{..}', 'http://..').then(function(){...});
Esto me ha estado molestando. ¿Hay algún patrón que las bibliotecas o funciones asíncronas no prometedoras deban seguir para que Bluebird promisifyAll las convierta en métodos basados en promesas o hay alguna magia que las convierte?
Si no, ¿cuáles son los requisitos y cómo funciona con las bibliotecas existentes como mongodb, etc.