Node.js中的错误优先回调和事件发射器

时间:2016-04-12 02:51:34

标签: javascript node.js

我实现了一个导出事件发射器的模块。

我的事件发射器基本上是这样的:

const EE = require('events');
const util = require('util');

function MyEventEmitter(){

   EE.call(this);


}

util.inherits(MyEventEmitter,EE);


MyEventEmitter.prototype.foo = function(data){

     this.emit('done-with-foo', {});

});

MyEventEmitter.prototype.bar = function(data){

     this.emit('done-with-bar', null, {});

});

让我对Node中的事件发射器感到困惑的是,我们应该首先使用错误回调。但是如果我们使用我的事件发射器:

const ee = new MyEventEmitter();

ee.on('done-with-foo', function(err, data1,data2,data3,etc){

    if(err){
    //handle err
   }

});

ee.on('done-with-bar', function(err, data1,data2,data3,etc){

   if(err){
    //handle err
   }

});

  ee.foo();
  ee.bar();

在一种情况下,存在错误优先回调,但在另一种情况下,它不是错误优先。

符合Node.js标准的正确方法是什么?也许正确的方法是只使用带有'错误'事件的错误优先回调? 否则基本上保证没有错误传递?

0 个答案:

没有答案