我有一个事件发射器(一个变换流),事件发射器基本上有一堆子发射器。将事件从一个事件发射器转发到另一个事件
我想从所有子发射事件转发到父发射器,这样的事情:
const EE = require('events');
const exportEvents = new EE();
const sumanEvents = Transform(); // create new transform stream (an event emitter)
sumanEvents.on('test', function() {
exportEvents.emit.bind(exportEvents, 'test').apply(exportEvents, arguments);
});
sumanEvents.on('error', function() {
exportEvents.emit.bind(exportEvents, 'error').apply(exportEvents, arguments);
});
sumanEvents.on('suman-test-file-complete', function() {
exportEvents.emit.bind(exportEvents, 'suman-test-file-complete').apply(exportEvents, arguments);
});
基本上,从我可以告诉,我已经转发的错误,测试和苏曼测试文件完整的事件给父母,但这看起来很丑陋。
难道至少有更复杂的方法吗?我认为没有办法直接用Node.js的'events'包来继承事件,所以我没有问这个。
谢谢,第一个解决方案不会为我工作轻松,因为我有多个sumanEvents发射器,不只是一个,和在声明exportEvents的时候,我没有处理所有这些不同的sumanEvents发射器,如果这样做合理,但您的第二种解决方案可能适用于我,谢谢:) –