In una promessa libreria bluebird ha funzione promisifyAll o altre librerie simili che pretendono di convertire funzioni asincrone con pattern di callback in promesse basate cioè. resolve()
, reject()
o done()
.. Come funziona?Come promisifyAll funziona, o quali sono i requisiti per farlo funzionare?
Ad esempio:
function myAsync1 (data, url, callBack) {...}
e se l'ho messo in
Promise.promisify(myAsycn1);
allora sarà il mio lavoro funzione come questa ..
myAsync1('{..}', 'http://..').then(function(){...});
Questo è stato mi dà fastidio. Esiste uno schema che le librerie o le funzioni asincrone non promettenti devono seguire per Bluebird promisifyAll per convertirle in metodi basati su promesse o c'è qualche magia che li converte.
Se poi quali sono i requisiti e come funziona con le librerie esistenti come mongodb ecc
Si noti che la funzione non è "convertita", le funzioni sono immutabili. Invece, 'Promise.promisify' restituisce una * nuova * funzione che chiamerà il vecchio con il callback. – Bergi
possibile duplicato di [Cercando di capire come funziona la promessa con BlueBird] (http://stackoverflow.com/q/26391419/1048572) – Bergi
@Bergu potrebbe essere un duplicato, ma il suo titolo è scritto così male in termini di SEO che dopo la ricerca per quattro ore non l'ho incontrato una volta da remoto, infatti è più sul lato dell'esca per clic. –