メソッドの説明:
指定されたイベントのリスナーを登録します。
文法:
エミッター.on(イベント、リスナー)
エミッター.addListener(イベント, リスナー)
パラメータを受信します:
event (文字列) イベントタイプ
リスナー (関数) イベントがトリガーされたときのコールバック関数
例:
server.on('接続', 関数 (ストリーム) {
console.log('誰かが接続しました!');
});
ソースコード:
EventEmitter.prototype.addListener = function(type, リスナー) {
var m;
if (!util.isFunction(listener))
Throw TypeError('リスナーは関数である必要があります');
if (!this._events)
This._events = {};
// === "newListener" Before
と入力する場合の再帰を避けるため
// リスナーに追加し、最初に「newListener」を発行します。
if (this._events.newListener)
This.emit('newListener', type,
util.isFunction(listener.listener) ?
Listener.listener : リスナー);
if (!this._events[type])
// 1 つのリスナーの場合を最適化します。追加の配列オブジェクトは必要ありません。
This._events[type] = リスナー;
else if (util.isObject(this._events[type]))
// すでに配列がある場合は、追加するだけです。
This._events[type].push(listener);
それ以外
// 2 番目の要素を追加するには、配列に変更する必要があります。
this._events[タイプ] = [this._events[タイプ], リスナー];
// リスナーのリークをチェックします
if (util.isObject(this._events[type]) && !this._events[type].warned) {
var m;
If (!util.isUnknown(this._maxListeners)) {
m = this._maxListeners;
} else {
m = EventEmitter.defaultMaxListeners;
}
If (m && m > 0 && this._events[type].length > m) {
This._events[type].warned = true;
console.error('(ノード) 警告: EventEmitter メモリの可能性があります '
' リークが検出されました。 %d 個のリスナーが追加されました。 '
'制限を増やすには、emitter.setMaxListeners() を使用します。',
This._events[type].length);
console.trace();
}
}
これを返します;
};