ホームページ  >  記事  >  ウェブフロントエンド  >  node.js_node.js での Emitter.on メソッドの使用手順

node.js_node.js での Emitter.on メソッドの使用手順

WBOY
WBOYオリジナル
2016-05-16 16:27:501995ブラウズ

メソッドの説明:

指定されたイベントのリスナーを登録します。

文法:

コードをコピーします コードは次のとおりです:

エミッター.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();
}
}
これを返します;
};
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。