【Node.js24.x】EventEmitter::prependListener()メソッドの使い方
prependListenerメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
prependListenerメソッドは、Node.jsのEventEmitterクラスに属し、指定されたイベント名のイベントリスナーを、そのイベントのリスナーリストの先頭に追加するメソッドです。
EventEmitterは、イベントを発生させたり(emit)、そのイベントを監視して特定の処理を実行したり(listen)するための強力な仕組みを提供します。通常、イベントリスナーはonまたはaddListenerメソッドを使って登録され、これらはリスナーリストの末尾に新しいリスナーを追加します。そのため、登録された順序でリスナーが実行されます。
しかし、prependListenerメソッドを使用すると、新しく追加されるリスナーは、そのイベントにすでに登録されているすべてのリスナーよりも先に実行されるようになります。つまり、イベントが発生した際に、このメソッドで追加されたリスナーが最も最初に処理されることになります。
このメソッドは、第一引数にイベントの名前を文字列またはシンボルで受け取り、第二引数にはそのイベントが発生したときに実行されるコールバック関数(リスナー関数)を指定します。例えば、システム全体のロギング処理や、他のすべてのイベントハンドラよりも前に実行すべき重要な事前処理などを設定したい場合に非常に有効です。これにより、イベント処理の実行順序を柔軟に制御し、特定の処理を確実に優先させることが可能になります。
prependListenerメソッドは、メソッドチェーンのためにEventEmitterインスタンス自身を返します。
構文(syntax)
1const EventEmitter = require('events'); 2const myEmitter = new EventEmitter(); 3 4myEmitter.prependListener('eventName', (arg1, arg2) => { 5 console.log('このリスナーは他のリスナーより前に実行されます。', arg1, arg2); 6}); 7 8myEmitter.on('eventName', (arg1, arg2) => { 9 console.log('これは通常の方法で追加されたリスナーです。', arg1, arg2); 10}); 11 12myEmitter.emit('eventName', 'データ1', 'データ2');
引数(parameters)
eventName, listener
- eventName: string | symbol: リッスンするイベントの名前
- listener: (...args: any[]) => void: イベントが発生したときに呼び出される関数
戻り値(return)
EventEmitterインスタンス自身が返されます。これにより、メソッドチェーンを構成することができます。