Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】EventEmitter::setMaxListeners()メソッドの使い方

setMaxListenersメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

setMaxListenersメソッドは、特定のEventEmitterインスタンスに登録できるリスナーの最大数を設定するメソッドです。Node.jsのEventEmitterは、デフォルトで10個を超えるリスナーが登録された場合、メモリリークの可能性を警告するためにコンソールにメッセージを出力します。このメソッドを使用することで、そのデフォルトの警告しきい値を変更できます。

このメソッドは、引数として数値nを受け取ります。nには、警告なしに登録を許可するリスナーの最大数を指定します。例えば、emitter.setMaxListeners(20)と設定した場合、そのemitterインスタンスには最大20個のリスナーを登録できるようになり、21個目以降のリスナーが登録されようとすると警告が表示されるようになります。

もしn0を設定すると、リスナー数の上限は無制限となり、どれだけ多くのリスナーが登録されても警告は一切表示されなくなります。しかし、リスナー数が非常に多くなることは、意図しないメモリリークやパフォーマンス低下につながる可能性があるため、通常は適切な上限値を設定することが推奨されます。

このメソッドは、設定を行ったEventEmitterインスタンス自身を返します。これにより、他のEventEmitterメソッドと組み合わせてメソッドチェーンを構築することができます。主に、特定のイベントエミッタが多数のリスナーを持つことが設計上想定される場合に、デフォルトの警告を抑制し、システムの挙動を適切に制御するために利用されます。

構文(syntax)

1const EventEmitter = require('events');
2const myEmitter = new EventEmitter();
3
4// このEventEmitterインスタンスが登録できるイベントリスナーの最大数を、
5// デフォルトの10から20に変更します。
6myEmitter.setMaxListeners(20);

引数(parameters)

n

  • n: number: 設定するリスナーの最大数。この数を超えると警告が発せられます。

戻り値(return)

EventEmitter

このメソッドは、リスナーの最大数を設定した EventEmitter インスタンス自身を返します。これにより、メソッドチェーンでの利用が可能になります。

関連コンテンツ

関連プログラミング言語