我实现了一个导出事件发射器的模块。
我的事件发射器基本上是这样的:
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标准的正确方法是什么?也许正确的方法是只使用带有'错误'事件的错误优先回调? 否则基本上保证没有错误传递?