Node.js は、イベント駆動型のノンブロッキング I/O モデルを使用する、スケーラブルなネットワーク アプリケーション用の JavaScript ランタイム環境です。ノード エミッター (Emitter) は、Node.js によって提供される対話型データ通信モジュールであり、オブジェクト間のオブザーバー モードを実装できるため、オブジェクトを複数のユーザーが同時に監視でき、オブジェクトのステータスが変化したときに自動的に監視できます。すべてのユーザー。この記事では、Node.js のエミッターを使用してオブジェクトの監視とイベントトリガーを実装する方法を紹介します。
まず、ランチャーの基本概念をいくつか理解する必要があります。 Emitter は、イベント管理メカニズムを実装する Node.js の組み込みモジュールです。イベントの登録、イベントの発行、イベントリスナーの削除などの機能を提供するイベントトリガーです。 Node.js では、ほとんどのモジュールが EventEmitter クラスから継承しているため、すべてのモジュールがイベント処理の実装に使用できるエミッター インスタンスを持っています。
ランチャーを使用する前に、いくつかの基本的な知識を理解する必要があります。まず、エミッター インスタンスを作成するには、イベント モジュールを導入し、EventEmitter オブジェクトを作成する必要があります。コードは次のとおりです:
const EventEmitter = require('events'); const emitter = new EventEmitter();
ここでは、require
関数を使用して、ビルドされた-in Node.js events
モジュールを作成し、イベントの発行と監視用の EventEmitter オブジェクト emitter
を作成しました。
次に、イベントの登録、処理、削除を実装する必要があります。イベントの登録と削除には on
メソッドと off
メソッドを使用でき、イベント処理には emit
メソッドを使用できます。基本的な例をいくつか示します。
function callback() { console.log('event is emitted'); } // 注册事件监听器,监听event事件 emitter.on('event', callback); // 触发event事件,会自动调用callback函数 emitter.emit('event'); // 移除event事件监听器,不再监听event事件 emitter.off('event', callback);
上の例では、on
メソッドを使用してイベント リスナーを登録しました。イベント 'event'
が発行されると、callback
関数が自動的に呼び出されます。次に、emit
メソッドを使用してイベント 'event'
を発行し、callback
関数をトリガーしました。最後に、off
メソッドを使用して、callback
関数によるイベント 'event'
の監視を削除します。
on
、off
、emit
メソッドに加えて、他のメソッドを使用してエミッタを操作することもできます。このうち、once
メソッドは on
メソッドと似ていますが、once
メソッドはイベントが一度発行された後、イベント リスナーを自動的に削除する点が異なります。 。さらに、prependListener
メソッドはイベント リスナーをイベント リスナー リストの先頭に挿入でき、prependOnceListener
メソッドはイベント リスナーをリスナー リストの先頭に提供します。一度だけ呼び出されます。
// 在所有事件监听器之前添加事件监听器 emitter.prependListener('event', callback); // 在所有事件监听器之前添加事件监听器,只会调用一次 emitter.prependOnceListener('event', callback);
もちろん、eventNames
メソッドを使用して、現在のオブジェクトに登録されているすべてのイベントの名前リストを取得することもできます。
const eventNames = emitter.eventNames(); console.log(eventNames); // ['event']
全体として、Node.js のエミッターを使用することは、通信に非常に便利な方法です。エミッターを使用すると、オブジェクト間の疎結合関係を確立できるため、アプリケーションの複雑さとメンテナンスのコストが軽減されます。エミッターを使用すると、オブジェクト間のデータ通信とイベント処理を簡単に実装できるため、アプリケーションの信頼性とスケーラビリティが向上します。
以上がNodejsランチャーの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。