ノードのイベントとイベントエミッタ.js
1986 ワード
ノードのコア概念の1つはイベントの概念です.実際、多くのノードのコア機能はイベントのこの概念に基づいています.
定義
イベントは基本的に我々のアプリケーションで何かが起こったことを示すシグナルです.
例:
ノードでは、HTTPと呼ばれるクラスがあり、Webサーバを構築するために使用できるクラスがあります.したがって、指定したポートを聞き、HTTPクラスがイベントを発生させることを要求します.今、私たちの仕事は、基本的にその要求を読んで、正しい反応を返すことにかかわるその出来事に反応することです.
イベントエミッタでどのように動作するかを見ましょう.
Step 1 :
イベントモジュールをロードしましょう.
我々が呼ぶとき
私たちは10以上のメソッドを持っていますが、私たちは、これらのメソッドのうちの2つだけを使用します.あなたがエミットの意味を知らないならば:雑音を作ることを意味するか、我々のケースで何かを生産することを意味します.我々はイベントが起こったことを通知している.
さて、次のコードを実行すると、何も修正されません.
Listener :そのイベントが発生したときに呼び出される関数です.
メッセージログイベントが発生したときに呼び出されるリスナーを登録して、onメソッドを使用します.
これはイベント発生の基礎であり、イベントエミッタークラスを使用して処理します.
ハッピーコーディング;
定義
イベントは基本的に我々のアプリケーションで何かが起こったことを示すシグナルです.
例:
ノードでは、HTTPと呼ばれるクラスがあり、Webサーバを構築するために使用できるクラスがあります.したがって、指定したポートを聞き、HTTPクラスがイベントを発生させることを要求します.今、私たちの仕事は、基本的にその要求を読んで、正しい反応を返すことにかかわるその出来事に反応することです.
イベントエミッタでどのように動作するかを見ましょう.
Step 1 :
イベントモジュールをロードしましょう.
const EventEmitter = require('events');
注意:大文字ですべての単語の最初の文字を命名するためには、このイベントエミッターが関数であるか単純な値ではなく、クラスであることを示します.我々が呼ぶとき
require
関数は、イベントエミッタークラスを取得します.さて、このクラスのインスタンスを作成する必要があります.そして、それは以下のコードのコードでできますconst emitter = new EventEmitter() ;
このエミッタは、これを使用する方法の束を持ってlink エミッタークラスを提供するイベントのすべてのリスト.私たちは10以上のメソッドを持っていますが、私たちは、これらのメソッドのうちの2つだけを使用します.あなたがエミットの意味を知らないならば:雑音を作ることを意味するか、我々のケースで何かを生産することを意味します.我々はイベントが起こったことを通知している.
emitter.emit('')
私たちは、イベントの名前である引数を渡して、将来的に我々のlogerモジュールを拡張しようとしており、メッセージログと呼ばれるイベントを発生させるメッセージをログ出力するたびにさて、次のコードを実行すると、何も修正されません.
const EventEmitter = require('events')
const emitter = new EventEmitter();
emitter.emit('messageLogged');
我々はここでイベントを提起しているので、我々のアプリケーションではどこにも我々はそのイベントに興味を持っているリスナーを登録している.Listener :そのイベントが発生したときに呼び出される関数です.
メッセージログイベントが発生したときに呼び出されるリスナーを登録して、onメソッドを使用します.
const EventEmitter = require('events')
const emitter = new EventEmitter();
//Register a listener
emitter.on('messageLogged',function(){
console.log("Listener is called")
});
emitter.emit('messageLogged');
注意:emitメソッドを呼び出した後にリスナーを登録した場合、この順序は重要です.EMITメソッドを呼び出すとき、エミッタはすべての登録されているリスナーを反復処理し、同期して呼び出します.これはイベント発生の基礎であり、イベントエミッタークラスを使用して処理します.
ハッピーコーディング;
Reference
この問題について(ノードのイベントとイベントエミッタ.js), 我々は、より多くの情報をここで見つけました https://dev.to/ditikrushna/events-and-event-emitter-in-node-js-2ek5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol