情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでイベントに登録されている全てのイベントハンドラを取得する

全てのイベントハンドラの取得

イベントに登録されている全てのイベントハンドラを取得するにはeventEmitter.listeners関数を使用します。

var events = require('events');

var eventEmitter = new events.EventEmitter();
var listeners = eventEmitter.listeners('xxx');

第1引数にイベント名を指定します。

返り値としてイベントに登録されている全てのイベントハンドラの配列が得られます。

イベントハンドラ数の取得

イベントに登録されているイベントハンドラの数を取得するにはeventEmitter.listenerCount関数を使用します。

var count = eventEmitter.listenerCount('xxx');

第1引数にイベント名を指定します。

返り値としてイベントに登録されているイベントハンドラの数が得られます。

サンプルコード1

event-emitter-listeners.js

var events = require('events');

var eh1 = function (p) {
    console.log(p.name + ' ' + p.age);
};
var eh2 = function (p) {
    console.log('new person.');

    p.age = 0;
};

var eventEmitter = new events.EventEmitter();
console.log(eventEmitter.listeners('new'));
console.log(eventEmitter.listenerCount('new'));
eventEmitter.on('new', eh1);
eventEmitter.on('new', eh2);
eventEmitter.on('new', eh1);
console.log(eventEmitter.listeners('new'));
console.log(eventEmitter.listenerCount('new'));

実行結果

C:\work\node>node event-emitter-listeners.js
[]
0
[ [Function], [Function], [Function] ]
3

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js