Javascript Bluebird promisified库的结果作为错误返回
我目前正在使用蓝鸟与fb npm包 我已经设法让fb库返回数据。但是,数据被捕获为错误,而不是传递给Javascript Bluebird promisified库的结果作为错误返回,javascript,node.js,facebook-javascript-sdk,bluebird,Javascript,Node.js,Facebook Javascript Sdk,Bluebird,我目前正在使用蓝鸟与fb npm包 我已经设法让fb库返回数据。但是,数据被捕获为错误,而不是传递给then()方法 var Promise=require('bluebird'), fb=承诺、承诺(要求(‘fb’); apiAsync(端点,选项) .然后(功能(响应){ console.log(response);//这不会被调用 },功能(e){ console.log(e);//facebook响应作为错误的一部分获得返回 });默认情况下,bluebird中的promisify函数
then()
方法
var Promise=require('bluebird'),
fb=承诺、承诺(要求(‘fb’);
apiAsync(端点,选项)
.然后(功能(响应){
console.log(response);//这不会被调用
},功能(e){
console.log(e);//facebook响应作为错误的一部分获得返回
});代码>默认情况下,bluebird中的promisify
函数期望回调API为:
要说明的函数的最后一个参数是回调函数
回调函数的第一个参数是错误值
回调函数的第二个参数是结果值
查看npm上的fb
包,我们可以看到回调使用以下形式:
函数(res){…}
其中回调函数的第一个参数是结果,并且似乎没有错误值的参数。这意味着该API违反了规则2和规则3。幸运的是,bluebird允许用户编写自定义promisifier函数,有关详细信息,请参阅。谢谢,我将介绍如何创建自定义promisifier。链接已过时。对于GitHub链接,您通常应该使用永久链接(例如,提交链接):)(查看页面时按y
可以获得该链接)。