2

ストリームなどのようにから継承されたオブジェクトがあるとしEventEmitterます。リッスンできるすべてのイベントと、接続されているすべてのイベント リスナーを知る良い方法はありますか?

質問の 2 番目の部分は簡単だと思いますemitter.listeners(event)。すべてのリスナーにイベントを教えてくれます。しかし、聞くことができるすべてのイベントを事前に知る方法はありますか?

4

1 に答える 1

3

私の知る限り、EventEmitter が発行できるすべてのイベントをリストするのに役立つ公開 API やドキュメントはありません。

しかし、EventEmitter のソース コードを見ると、すべてのイベントが_eventsプロパティに格納されていることがわかります。そのため、コードはオブジェクトのキーをループして、考えられるすべてのイベントを見つけることができます。イベント名をリストする方法の例を次に示します。

var ee = new SomeEventEmitter();
console.log(Object.keys(ee._events));

ただし、これは文書化されていないため、これには注意することをお勧めします。

編集:一部のモジュールは、可能なイベントのリストを提供します。たとえば、SAX (および対応するソース) を参照してください。

于 2013-11-12T10:56:56.353 に答える