イベント モニタリングは開発でよく使用されます。プログラミング言語では、リスナーは、他のオブジェクトで発生するイベントやステータスの変化を監視し、それに応じて処理するために特別に使用されるデバイスです。監視対象オブジェクトに何かが発生した場合は、直ちに対応するアクションを実行します。リスナーは受動的トリガーを特徴とし、トリガー イベントは即時に実行されます。小規模なプログラム開発にもこのようなイベント処理メカニズムがあり、Node.js のすべての非同期 I/O 操作は完了するとイベント キューにイベントを送信します。 Node.js の多くのオブジェクトはイベントを発行します。net.Server オブジェクトは新しい接続が確立されるたびにイベントを発行し、fs.readStream オブジェクトはファイルが開かれたときにイベントを発行します。これらのイベント生成オブジェクトはすべて events.EventEmitter のインスタンスです。それではミニプログラム制作でイベントリスナーを使用するにはどうすればよいでしょうか?
events モジュールは、events.EventEmitter という 1 つのオブジェクトのみを提供します。
EventEmitter の中核は、イベント トリガー関数とイベント リスナー関数のカプセル化です。
EventEmitter の各イベントは、イベント名といくつかのパラメーターで構成されます。イベント名は文字列であり、通常は特定のセマンティクスを表します。イベントごとに、EventEmitter は複数のイベント リスナーをサポートします。
イベントがトリガーされると、このイベントに登録されているイベント リスナーが順番に呼び出され、イベント パラメータがコールバック関数のパラメータとして渡されます。
//event.js 文件 var events =require(\'events\'); var emitter= new events.EventEmitter(); emitter.on(\'someEvent\',function(arg1, arg2) { console.log(\'listener1\', arg1, arg2); }); emitter.on(\'someEvent\',function(arg1, arg2) { console.log(\'listener2\', arg1, arg2); }); emitter.emit(\'someEvent\',\'arg1 参数\', \'arg2 参数\');
addListener(event,listener) 指定されたイベントのリスナーをリスナー配列の末尾に追加します。
on(event,listener) は、文字列イベントとコールバック関数を受け入れて、指定されたイベントのリスナーを登録します。
once(event,listener) 指定されたイベントの 1 回限りのリスナーを登録します。つまり、リスナーは最大 1 回だけトリガーされ、トリガーされた後すぐに解放されます。
removeListener(event,listener) 指定されたイベントのリスナーを削除します。リスナーは、イベントに登録されたリスナーである必要があります。
これは 2 つのパラメータを受け入れます。1 つ目はイベント名、2 つ目はコールバック関数名です。
removeAllListeners([event]) は、すべてのイベントのすべてのリスナーを削除します。イベントが指定されている場合は、指定されたイベントのすべてのリスナーが削除されます。
setMaxListeners(n) デフォルトでは、10 を超えるリスナーを追加すると、EventEmitters は警告メッセージを出力します。 setMaxListeners 関数は、リスナー数のデフォルト制限を増やすために使用されます。
listeners(event) は、指定されたイベントのリスナー配列を返します。
emit(event,[arg1], [arg2], […]) パラメータの順に各リスナーを実行し、イベントにリスナーが登録されている場合は true を返し、登録されていない場合は false を返します。クラス メソッドの
ListenerCount(emitter,event) は、指定されたイベントのリスナーの数を返します。
Listening events
removeListener は、指定されたリスナー配列からリスナーを削除します。この操作により、削除されたリスナーの後にそれらのリスナーのインデックスが変更されることに注意してください。
event - 文字列、イベント名
listener - イベント処理関数
newListener このイベントは、新しいリスナーが追加されたときにトリガーされます。
event - 文字列、イベント名
listener - イベント処理関数
error これにはエラー セマンティクスが含まれています。通常、例外が発生したときにエラー イベントをトリガーします。
エラーがトリガーされた場合、EventEmitter は、応答するリスナーがない場合に Node.js がそれを例外として扱い、プログラムを終了してエラー メッセージを出力することを規定します。通常、エラー発生時にプログラム全体がクラッシュするのを防ぐために、エラー イベントをトリガーするオブジェクトのリスナーを設定する必要があります。
ほとんどの場合、EventEmitter を直接使用することはなく、オブジェクト内で継承します。イベント応答をサポートするコア モジュールが EventEmitter のサブクラスである限り、fs、net、http が含まれます。この利点は、特定のエンティティ関数を持つオブジェクトのイベント実装がセマンティクスに準拠しており、イベントの監視と発行がオブジェクトのメソッドである必要があることです。次に、js のオブジェクト機構はプロトタイプに基づいており、部分的な多重継承をサポートしているため、EventEmitter を継承してもオブジェクト本来の継承関係が崩れることはありません。
推奨事項: 「 ミニ プログラム開発チュートリアル 」
以上がミニプログラム開発におけるイベントリスナーの使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。