在一个承诺库蓝鸟有函数promisifyAll或其他类似的库,声称将回调模式的异步函数转换为基于承诺,即。 resolve()
,reject()
或done()
..那么它是如何工作的?promisifyAll如何工作,或者它的工作要求是什么?
例如:
function myAsync1 (data, url, callBack) {...}
,如果我把它放在
Promise.promisify(myAsycn1);
然后将我喜欢这个功能工作..
myAsync1('{..}', 'http://..').then(function(){...});
这也一直困扰着我。是否有一种模式,异步非诺言库或功能需要遵循蓝鸟promisifyAll将它们转换为基于承诺的方法或有一些魔法,将它们转换。
如果没有,那么有什么要求,它是如何与像的MongoDB等
请注意,您的功能不是“转换”,功能是不可变的。相反,'Promise.promisify'不会返回一个* new *函数,它会用回调调用旧函数。 – Bergi
[尝试了解promisification如何与BlueBird合作](http://stackoverflow.com/q/26391419/1048572) – Bergi
@Bergi它可能是重复的,但它的标题在SEO方面措辞如此糟糕以至于在搜索之后四个小时,我没有遇到过一次,事实上,它更接近点击诱饵。 –