Node.js의 이벤트 및 이벤트 이미터

노드의 핵심 개념 중 하나는 이벤트 개념입니다. 실제로 많은 노드의 핵심 기능은 이러한 이벤트 개념을 기반으로 합니다.

정의:
이벤트는 기본적으로 애플리케이션에서 어떤 일이 발생했음을 나타내는 신호입니다.

예시 :
노드에는 웹 서버를 구축하는 데 사용할 수 있는 HTTP라는 클래스가 있으므로 지정된 포트에서 수신 대기하고 해당 포트에서 요청을 수신할 때마다 HTTP 클래스가 이벤트를 발생시킵니다. 이제 우리의 임무는 기본적으로 해당 요청을 읽고 올바른 응답을 반환하는 이벤트에 응답하는 것입니다.

이벤트 이미터로 작업하는 방법을 살펴보겠습니다.

1 단계:
이벤트 모듈을 로드합시다.

const  EventEmitter  =  require('events');

참고: 모든 단어의 첫 글자를 대문자로 명명할 때 이는 이 이벤트 이미터가 함수나 단순 값이 아닌 클래스임을 나타내는 규칙입니다.
require 함수를 호출하면 이벤트 이미터 클래스를 얻습니다. 이제 이 클래스의 인스턴스를 만들어야 합니다. 그리고 그것은 다음 코드로 할 수 있습니다

const emitter = new EventEmitter() ;  

이 이미터에는 이미터 클래스를 제공하는 모든 이벤트 목록에 대해 이것을 사용하는 여러 메서드가 있습니다link.

우리는 대부분 10개 이상의 메소드를 가지고 있지만 이 메소드 중 2개만 사용합니다. 하나는 이벤트를 발생시키는 데 사용하는 방출입니다. 방사의 의미를 모르는 경우: 우리의 경우 소음을 일으키거나 무언가를 생성한다는 의미는 우리 응용 프로그램에서 소음을 만들 것입니다. 이벤트가 발생했음을 알리고 있습니다.

emitter.emit('')

우리는 이벤트의 이름인 인수를 전달합니다. 미래에 messageLogged라고 합시다. 우리는 로거 모듈을 확장할 것이고 메시지를 기록할 때마다 우리는 메시지 기록이라는 이벤트를 발생시킬 것입니다.

이제 다음 코드를 실행하면 아무것도 추가되지 않습니다.

const EventEmitter = require('events')
const emitter = new EventEmitter();
emitter.emit('messageLogged');

여기에서 이벤트를 발생시켰지만 애플리케이션의 어디에도 해당 이벤트에 관심이 있는 리스너를 등록했기 때문입니다.
리스너: 해당 이벤트가 발생할 때 호출되는 함수입니다.

메시지 로그 이벤트가 발생할 때 호출될 리스너를 등록해 보겠습니다. 이를 위해 on 메소드를 사용하고 두 개의 인수를 취합니다. 첫 번째는 우리의 경우 이벤트 이름이고 두 번째는 콜백 함수입니다. 실제 청취자.

const EventEmitter = require('events')
const emitter = new EventEmitter();
//Register a listener 
emitter.on('messageLogged',function(){
  console.log("Listener is called")
});
emitter.emit('messageLogged');

참고: 방출 메소드를 호출한 후 리스너를 등록하면 방출 메소드를 호출할 때 에미터가 등록된 모든 리스너를 반복하고 동기적으로 호출하기 때문에 순서가 중요합니다.

이것은 이벤트를 발생시키고 이벤트 이미터 클래스를 사용하여 처리하는 기초입니다.

해피코딩 ;)

좋은 웹페이지 즐겨찾기