본문 바로가기
Programming

Node.js event eventEmitter 란? 이벤트 처리하기

by 개발자 염상진 2022. 9. 6.

Stream을 사용하거자 Web Socket을 사용할 때 이벤트를 사용합니다. 이벤트 객체는 개발자가 직접 구현해서 사용할 수 있습니다. Node.js 에서는 기본 모듈로 events 를 지원하고 있습니다. 

 

 

 

 

Node.js events Document

Event 객체

 

우선 events 모듈을 가져옵니다.

새로운 객체를 생성해주고, addListener로 새로운 이벤트를 생성해줍니다.

이벤트가 발생했을 때 로직을 구현하는 건 콜백함수로 전달한 로직에서 완성합니다. 이번에는 간단한 예제로 console.log()로 문자열을 출력합니다. 

생성된 이벤트를 일으키기 위해서는 emit() 함수를 사용합니다. 

const EventEmitter = require('events');

const customEvent = new EventEmitter();

customEvent.addListener('event1', ()=>{
    console.log('이벤트가 발생했습니다.');
})

customEvent.emit('event1');

 

이벤트를 생성하는 두번째 방법은 'on' 함수를 사용합니다.

customEvent.on('event2', ()=>{
    console.log('ON 이벤트가 발생했습니다.')
})

customEvent.emit('event2');

 

이벤트를 한번만 실행시키기 위해서는 once 함수를 사용합니다.

customEvent.once('event3', ()=>{
    console.log('ONCE 이벤트는 한번만 실행됩니다.');
})

// 한번만 실행됨
customEvent.emit('event3');
customEvent.emit('event3');

 

 

 

생성된 이벤트를 삭제할 수 있습니다. 삭제하는 방법은 두가지 입니다.

첫째는 현재 생성된 모든 이벤트를 삭제하는 removeAllListeners() 함수를 사용합니다. 인자로 이벤트명을 기입합니다. 

두번째 방법은 removeListener() 함수를 사용하거나, off() 함수를 사용해 연결된 이벤트명과 콜백함수를 함께 지정해줍니다. 두 함수의 기능은 동일합니다.

const event4 = ()=>{
    console.log('이벤트4가 발생했습니다.')
}

customEvent.on('event4', event4)
customEvent.emit('event4');

// 이벤트 삭제
// 1. 전체 이벤트 삭제
customEvent.removeAllListeners('event4')

// 2. 특정 이벤트만 삭제
customEvent.off('event4' , event4)
customEvent.removeListener('event4', event4)

// 실행 안됨
customEvent.emit('event4');

 

이벤트를 직접 생성해서 코드에 붙일 수 있으면 훨씬 간단하게 기능을 구현할 수 있습니다. 

 

 

 

 

Truffle migrate Error You must specify a network id in your development configuration in order to use this network

Error Code Truffle에서 컨트랙트를 컴파일 + 배포하는 과정에서 에러가 발생한다. Truffle migrate Error You must specify a network id in your development configuration in order to use this network 에러..

about-tech.tistory.com

 

 

[Git] 되돌리기 명령어 (restore, reset, clean 사용법)

Local Repository에서 작업하다 수정사항을 이전 단계로 돌려야 하는 경우 일일이 수정사항을 찾아서 되돌리기는 시간이 많이 소요됩니다. 수정 사항을 되돌리는 작업은 2가지 단계로 나눌 수 있습

about-tech.tistory.com

 

 

[Algorithm] 조합 최적화 알고리즘 subsetSum Node.js

조합 최적화 알고리즘은 주어진 배열 내에서 특정 조건을 만족하는 최적의 조합을 찾아내는 문제입니다. 조합(Combination)이란? 조합은 서로 다른 n개의 원소중에서 순서에 상관없이 r개의 원소를

about-tech.tistory.com

 

댓글