【Node.js24.x】EventEmitter::rawListeners()メソッドの使い方
rawListenersメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
rawListenersメソッドは、Node.jsのEventEmitterインスタンスに登録された特定のイベントに対する「生(raw)」のリスナー関数を取得するメソッドです。EventEmitterは、非同期的なイベント処理を行うための基本的なクラスであり、何らかの事象(イベント)が発生した際に、そのイベントに関心を持つ関数(リスナー)を実行する仕組みを提供します。
このメソッドは、引数としてイベント名を受け取り、そのイベント名に関連付けられているすべてのリスナー関数を配列として返します。特に重要な点として、EventEmitterのonce()メソッドなどを用いて登録されたリスナーは、内部的に元のリスナー関数をラップした形で管理されることがありますが、rawListenersメソッドは、それらのラッパー関数ではなく、実際に登録されたオリジナルのリスナー関数そのものを取得できるという特徴があります。
これにより、イベントに登録されているリスナーの実際の状態や、内部的なラップ処理を意識せずに、純粋なリスナー関数を確認したい場合に非常に役立ちます。返される配列はリスナー関数のコピーであるため、この配列を操作してもEventEmitterインスタンスに登録されている実際のリスナーには影響を与えません。デバッグや内部状態の確認など、EventEmitterインスタンスの挙動を深く理解する際に活用できます。
構文(syntax)
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
function listenerFunction() {}
myEmitter.on('eventName', listenerFunction);
const rawListenersArray = myEmitter.rawListeners('eventName');
引数(parameters)
eventName
- eventName: string: リッスンしているイベントの名前を指定します。
戻り値(return)
Function[]
指定されたイベントリスナー(コールバック関数)の配列を返します。