본문 바로가기
Javascript/Node.js

이벤트 이해하기

by 모스키토끼 2019. 10. 19.

events 모듈을 사용하여 MyEvent라는 객체를 만들었고 객체에는 이벤트 관리를 위한 메서드들이 있다.

  • on(이벤트명, 콜백): 이벤트 이름과 이벤트 발생 시 의 콜백을 연결해줌 - 이벤트 리스닝
  • addListener(이벤트명, 콜백): on과 기능이 같음
  • emit(이벤트명): 이벤트를 호출
  • once(이벤트명, 콜백): 한 번만 실행되는 이벤트
  • removeAllListeners('이벤트명'): 연결된 모든 이벤트 리스너를 제거
  • removeListener(이벤트명, 리스너): 연결된 리스너를 하나씩 제거
  • off(이벤트, 콜백): removeListener과 기능이 같다.
  • listenerCount(이벤트명): 연결된 리스너 개수 확인

예시코드)

const EventEmitter = require('events');

const myEvent = new EventEmitter();
myEvent.addListener('event1', () => {
	console.log('이벤트 1');
});
myEvent.on('event2', ()=> {
	console.log('이벤트 2');
}
myEvent.on('event2', ()=> {
	console.log('이벤트 2 추가');
});

myEvent.emit('event1');//이벤트 1 출력
myEvent.emit('event2');//이벤트 2
			//이벤트 2 추가 출력

myEvent.once('event3', () => {
	console.log('이벤트 3');
});
myEvent.emit('event3');//이벤트 3 출력
myEvent.emit('event3');//무시당함

myEvent.on('event4', ()=> {
	cdonsole.log('이벤트 4');
});
myEvent.removeAllListeners('event4');
myEvent.emit('event4');//이벤트가 삭제되어 아무 이벤트도 일어나지 않음

const listener = ()=> {
	console.log('이벤트 5');
};

myEvent.on('event5', listener);
myEvent.removeListener('event5', listener);
myEvent.emit('event5');//위와 같이 삭제되어 이벤트 x

console.log(myEvent.listenerCount('event2'));//2 출력

 

'Javascript > Node.js' 카테고리의 다른 글

Rest API와 라우팅  (0) 2019.11.06
쿠키와 세션 이해하기  (0) 2019.10.22
요청과 응답 이해하기(서버구현)  (0) 2019.10.19
버퍼와 스트림 이해하기  (0) 2019.10.17
파일 시스템 접근하기  (0) 2019.10.10

댓글