宣传简单的功能

时间:2014-09-16 07:34:57

标签: javascript bluebird

我正在尝试转换这个简单的函数

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) {
    // ...
});

这可能吗?我不想使用延期..

1 个答案:

答案 0 :(得分:1)

你的成功价值应该是第二个论点:

cb(null, result); // .. and finally do the callback.

使用Promise.promisify执行此操作后即可使用。

请注意the documentation states这个:

  

节点函数应符合node.js约定,即接受回调作为最后一个参数,并将该回调作为第一个参数调用,第二个参数为成功值。