我正在尝试转换这个简单的函数
function Foo(a, b, cb) {
// Do something time consuming...
var result = 1 + 1;
cb(result); // .. and finally do the callback.
}
到bluebird.js的承诺。我曾尝试使用Promise.promisify
,但它不起作用。
因此,最终目标是将上述内容转为:
Foo(a, b).then(function(result) {
// ...
});
这可能吗?我不想使用延期..
答案 0 :(得分:1)
你的成功价值应该是第二个论点:
cb(null, result); // .. and finally do the callback.
使用Promise.promisify
执行此操作后即可使用。
请注意the documentation states这个:
节点函数应符合node.js约定,即接受回调作为最后一个参数,并将该回调作为第一个参数调用,第二个参数为成功值。