オブジェクトイベントエミッター
EventEmitter は、オブザーバー パターンを確立するために使用できるイベント トリガー オブジェクトです。イベント トリガーをサポートするオブジェクトはすべて、これを継承します。
イベントがトリガーされると、そのイベントに関連付けられたすべてのリスナーが非同期的に呼び出されます。また、高度にカスタマイズ可能で柔軟なコードを作成することもできます。
一般的に使用される関数には、addListener/on、once、removeListener/off、removeAllListeners、および Emit が含まれます。
サンプルコードは次のとおりです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23var fs = require('fs');
var EventEmitter = require('events');
var event = new EventEmitter();
event.on('read_file', function(filename) {
fs.readFile(filename, 'utf8', function(err, data) {
if (err) {
event.emit('error', err);
return;
}
event.emit('show_content', data);
});
});
event.on('error', function(err) {
console.log(`Error ${err}`);
});
event.on('show_content', function(content) {
console.log(content);
});
event.emit('read_file', 'test.txt');
上記のサンプル コードを実行すると、イベント エミッター インスタンス イベントは最初に「read_file」イベントをリッスンし、次にイベントがトリガーされるとevent.emit('read_file', 'test.txt')
ファイルの読み取り操作をトリガーします( )。読み込みが成功すると「show_content」イベントがトリガーされ、このとき「show_content」イベントをリッスンした関数が実行され、ファイルの内容が表示されます。ファイルの読み取り中にエラーが発生した場合、「error」イベントがトリガーされ、操作の失敗が処理されます。
このモデルは、非同期操作を扱うビジネス シナリオにおいて大きな利点があります。
相続関係
コンストラクタ
EventEmitter
コンストラクタ
1new EventEmitter();
物体
イベントトリガーオブジェクト
1EventEmitter new EventEmitter;
静的プロパティ
defaultMaxListeners
整数、デフォルトのグローバル最大リスナー数
1static Integer EventEmitter.defaultMaxListeners;
メンバー関数
on
イベントハンドラーをオブジェクトにバインドする
1
2Object EventEmitter.on(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトにバインドする
1Object EventEmitter.on(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
addListener
イベントハンドラーをオブジェクトにバインドする
1
2Object EventEmitter.addListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトにバインドする
1Object EventEmitter.addListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
prependListener
イベントハンドラーをオブジェクトのオリジンにバインドする
1
2Object EventEmitter.prependListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトのオリジンにバインドする
1Object EventEmitter.prependListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
once
ワンタイム イベント ハンドラーをオブジェクトにバインドします。ワンタイム ハンドラーは 1 回だけトリガーされます。
1
2Object EventEmitter.once(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
ワンタイム イベント ハンドラーをオブジェクトにバインドします。ワンタイム ハンドラーは 1 回だけトリガーされます。
1Object EventEmitter.once(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
prependOnceListener
イベントハンドラーをオブジェクトのオリジンにバインドする
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトのオリジンにバインドする
1Object EventEmitter.prependOnceListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
off
オブジェクト処理キューから関数の割り当てを解除する
1
2Object EventEmitter.off(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キュー内のすべての関数をキャンセルします
1Object EventEmitter.off(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キューから関数の割り当てを解除する
1Object EventEmitter.off(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベントのマッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
removeListener
オブジェクト処理キューから関数の割り当てを解除する
1
2Object EventEmitter.removeListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キュー内のすべての関数をキャンセルします
1Object EventEmitter.removeListener(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キューから関数の割り当てを解除する
1Object EventEmitter.removeListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベントのマッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
removeAllListeners
オブジェクトの処理キューからすべてのイベントのすべてのリスナーをキャンセルします。イベントが指定されている場合は、指定されたイベントのすべてのリスナーが削除されます。
1Object EventEmitter.removeAllListeners(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクトの処理キューからすべてのイベントのすべてのリスナーをキャンセルします。イベントが指定されている場合は、指定されたイベントのすべてのリスナーが削除されます。
1Object EventEmitter.removeAllListeners(Array evs = []);
呼び出しパラメータ:
- evs: 配列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
setMaxListeners
リスナー数のデフォルト制限 (互換性のみを目的)
1EventEmitter.setMaxListeners(Integer n);
呼び出しパラメータ:
- n: 整数、イベントの数を指定します
getMaxListeners
互換性のみを目的として、デフォルトのリスナー制限数を取得します。
1Integer EventEmitter.getMaxListeners();
返される結果:
- Integer、デフォルトの制限数量を返します
listeners
オブジェクトの指定されたイベントについてリスナー配列をクエリします。
1Array EventEmitter.listeners(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Array、指定されたイベントのリスナー配列を返します。
listenerCount
オブジェクトの指定されたイベントのリスナーの数をクエリします。
1Integer EventEmitter.listenerCount(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Integer、指定されたイベントのリスナーの数を返します。
オブジェクトの指定されたイベントのリスナーの数をクエリします。
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
呼び出しパラメータ:
- o: 値。クエリのオブジェクトを指定します。
- ev: 文字列、イベントの名前を指定します
返される結果:
- Integer、指定されたイベントのリスナーの数を返します。
eventNames
クエリリスナーイベント名
1Array EventEmitter.eventNames();
返される結果:
- Array、イベント名の配列を返します。
emit
イベントをアクティブにトリガーする
1
2Boolean EventEmitter.emit(String ev,
...args);
呼び出しパラメータ:
- ev: 文字列、イベント名
- args: ...、イベントパラメータはイベント処理関数に渡されます
返される結果:
- Boolean、イベント トリガーのステータスを返し、応答イベントがある場合は true を返し、それ以外の場合は false を返します。
toString
オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。
1String EventEmitter.toString();
返される結果:
- String、オブジェクトの文字列表現を返します。
toJSON
オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。
1Value EventEmitter.toJSON(String key = "");
呼び出しパラメータ:
- key: 文字列、使用されません
返される結果:
- Value、シリアル化可能な JSON を含む値を返します