Node.js中的Promisifying回调

时间:2017-01-15 16:15:21

标签: javascript node.js callback promise

我有这个节点js app使用几个回调函数,我试图宣传无济于事。

它到了我不知道它是否可能的地步。如果你能帮我宣传下面的代码,我可能会做其余的事情:



var i2c_htu21d = require('htu21d-i2c');
var htu21df = new i2c_htu21d();


htu21df.readTemperature(function (temp) {
        console.log('Temperature, C:', temp);
});




任何见解都有帮助!!!

2 个答案:

答案 0 :(得分:4)

常见的模式是:

<promisified> = function() {
    return new Promise(function(resolve, reject) {
       <callbackFunction>(function (err, result) {
           if (err)
               reject(err);
           else
               resolve(result);
       });
    });
}

对于您的特定示例(您可能希望添加错误处理):

readTemperature = function() {
    return new Promise(function(resolve) {
       htu21df.readTemperature(function (temp) {
          resolve(temp);
       });
    });
}

readTemperature().then(function(temp) {
    console.log('Temperature, C:', temp);
});

答案 1 :(得分:1)

您需要使用bluebird

require 'socket'
s = UDPSocket.new
s.send("hello", 0, '127.0.0.1', 41234)