Как работает promisify All, или каковы требования к нему?

В библиотеке обещаний у bluebird есть функция promisifyAll или другие подобные библиотеки, которые утверждают, что преобразуют асинхронные функции с шаблонами обратного вызова в обещание, т.е.resolve(), reject(), или жеdone()..Итак, как это работает?

Например:

function myAsync1 (data, url, callBack) {...}

и если я положу это в

Promise.promisify(myAsycn1);

тогда моя функция будет работать так ...

myAsync1('{..}', 'http://..').then(function(){...});

Это беспокоит меня. Существует ли шаблон, которому должны следовать асинхронные библиотеки или функции без обещаний, чтобы Bluebird promisifyAll преобразовывал их в методы, основанные на обещаниях, или есть какая-то магия, которая их преобразовывает.

Если нет, то каковы требования и как это работает с существующими библиотеками, такими как mongodb и т. Д.

Ответы на вопрос(2)

Ваш ответ на вопрос