我有一個事件發射器(一個變換流),事件發射器基本上有一堆子發射器。將事件從一個事件發射器轉發到另一個事件
我想從所有子發射事件轉發到父發射器,這樣的事情:
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發射器,如果這樣做合理,但您的第二種解決方案可能適用於我,謝謝:) –