宣传听众

时间:2015-12-17 05:34:29

标签: javascript node.js promise listeners

我是一个巨大的承诺链,但我意识到其中一个函数返回一个具有侦听器的对象并对回调做出反应,如

object.on('data', function(err, data) {
     //do something
});

object.on('exit', function(err, data) {
     //do something
});

我想知道是否有办法使用promises工作,并将它们变成了可用的东西。没有其他方法可以重写我的整个保证链以使用回调吗?

1 个答案:

答案 0 :(得分:3)

你不能包裹对象吗?

var promiseForObjectData = new Promise(function(resolve, reject) {

  // Note that you can't promisify data, because it gets called multiple times.
  object.on('data', function(err, data) {
    if (err) return reject(err);
    //do something
  });

  object.on('exit', function(err, data) {
    if (err) return reject(err);
    return resolve(...whatever...);
  });

});