2

と の 2 つのクラスがEventEmitterありEventCatcherます。にはのEventCatcherメンバーが 2 つありEventEmitterます。EventEmitter テストイベントを発行します。キャッチャーでは、すべてのテスト イベントをキャッチして何かを実行したいと考えています。

イベントエミッター

var events = require('events');
var sys = require('util');

module.exports = eventEmit;

function eventEmit(name) {
    this.name = name;
    events.EventEmitter.call(this);
}

sys.inherits(eventEmit, events.EventEmitter);

eventEmit.prototype.emitTest = function() {
    var self = this;
    self.emit('test');
}

イベントキャッチャー

var eventEmit = require('./eventEmit');

module.exports = eventCatch;

function eventCatch() {
    this.eventEmitA = new eventEmit("a");
    this.eventEmitB = new eventEmit("b");
    this.attachHandler();
}

eventCatch.prototype.attachHandler = function()  {
    //I want to do something like:
    // this.on('test', function() };

    this.eventEmitA.on('test', function() {
        console.log("Event thrown from:\n" + this.name);
    });
    this.eventEmitB.on('test', function() {
        console.log("Event thrown from:\n" + this.name);
    });
};

eventCatch.prototype.throwEvents = function() {
    var self = this;
    self.eventEmitA.emitTest();
    self.eventEmitB.emitTest();
};

クラスごとに手動でアタッチすることなく、X イベントを のEventCatcherクラスにアタッチする方法はありますか?attachHandlerEventEmitter

4

1 に答える 1