【Node.js24.x】EventEmitter::listeners()メソッドの使い方
listenersメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
listenersメソッドは、Node.jsのEventEmitterクラスに属し、特定のイベントに登録されているリスナー関数の一覧を取得するメソッドです。このメソッドは、EventEmitterインスタンスが管理するイベント駆動システムにおいて、指定されたイベント名に対して現在どのような処理が登録されているかを確認するために利用されます。
具体的には、確認したいイベント名(文字列)を引数として渡すと、そのイベント名に紐付けられているすべてのリスナー関数を格納した配列を返します。配列の各要素は、そのイベントが発行された際に実行されるJavaScriptの関数そのものです。もし、指定されたイベント名にリスナーが一つも登録されていない場合は、空の配列が返されます。
このメソッドを使うことで、プログラムのデバッグ時や、イベントハンドリングの内部状態を検証したい場合に役立ちます。例えば、特定のイベントに対して意図しないリスナーが複数登録されていないか、または期待されるリスナーが正しく登録されているかなどを確認できます。しかし、このメソッドはリスナーの登録状況を確認するものであり、実際にリスナーをイベントに登録するにはon()またはaddListener()メソッドを、登録解除するにはremoveListener()メソッドを使用する必要があります。システムが複雑になり、イベントとリスナーの関係を明確に把握したい場合に非常に有用な機能です。
構文(syntax)
1const EventEmitter = require('events'); 2const myEmitter = new EventEmitter(); 3 4function dataHandlerA() { /* ... */ } 5function dataHandlerB() { /* ... */ } 6 7myEmitter.on('data', dataHandlerA); 8myEmitter.on('data', dataHandlerB); 9 10const registeredListeners = myEmitter.listeners('data'); 11console.log(registeredListeners); 12// 期待される出力例: [ [Function: dataHandlerA], [Function: dataHandlerB] ]
引数(parameters)
type
- type: string: リッスンしたいイベントのタイプを指定する文字列
戻り値(return)
Array<Function>
指定されたイベントリスナー関数を格納した配列を返します。