在Node.js中Promiseifying回调

这个问题在这里已经有了答案:

  • 如何将现有的回调API转换为承诺? 17个答案

  • 常见模式是:

    <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);
    });
    

    你需要为此使用蓝鸟。

    var bluebird = require('bluebird');
    var i2c_htu21d = require('htu21d-i2c');
    var htu21df = new i2c_htu21d();
    var readTemperature = bluebird.promisify(htu21df.readTemperature);
    
    
    readTemperature().then((temp) => {console.log('Temperature, C:', temp);});
    
    链接地址: http://www.djcxy.com/p/55531.html

    上一篇: Promisifying Callbacks in Node.js

    下一篇: Can I convert callback to promise?