2017-03-28 16 views
0

クラスからイベントを放出できますか?その後クラスからのイベントの送信

class MyEvent extends EventEmitter { 
    constructor(options) { 
    super(); 
    this.options = options; 
    this.execute(); 
    } 

    execute() { 
    // do something; 
    this.emit("close"); // Pass here to the instance. 
    } 
} 

const myEvent = MyEvent({}); 
myEvent.on("close", (data) => { 
    // do something here. 
}); 

は現在、近いイベントは、クラスから呼び出されていません。しかし、ここでは=>https://coligo.io/nodejs-event-emitter/が働いています。

+0

コンストラクタは決して何も実行してはいけません。その唯一の目的はインスタンスを初期化することです。 – Bergi

答えて

1

あなたは、コンストラクタでexecuteを呼び出すので、それはおそらくです。呼び出されますが、オブジェクトが構築された後にイベントハンドラがアタッチされます。イベントハンドラがアタッチされたかどうかを確認するために、イベントハンドラをアタッチした後にmyEvent.execute()にコールしてみてください。

+0

いいね! –

+0

イベントでexecuteを実行するのを避けることはできますか? –

+1

コンストラクタの意味ですか?彼らは処理できないので、そこからイベントを放つべきではありません。 – gabesoft

関連する問題