hyun_jo_o 2019. 8. 8. 13:11

미리 이벤트리스너를 만들어두고, 

 (이벤트 리스너를 특정 이벤트가 발생했을 때 어떤 동작을 할지 정의하는 부분)

예시) 사람들이 서버에 방문(이벤트)하면 HTML 파일을 준다.

 

 

const EventEmitter = require('events');

const myEvent = new EventEmitter();

myEvent.addListener('방문', () => {
    console.log('방문해주셔서 감사합니다.');
});
myEvent.on('종료', () => {
    console.log('안녕히가세요.');
});
myEvent.on('종료', () => {
    console.log('제발 좀 가세요');
});
// on과 addEventListener는 같은 기능을 하는 별명이다.

myEvent.once('특별이벤트', () => {
    console.log('한 번만 실행됩니다');
});
myEvent.emit('방문');		//이벤트 호출
myEvent.emit('종료');
myEvent.emit('특별이벤트');
myEvent.emit('특별이벤트');

emit을 통해 이벤트가 실행된 결과
once를 사용한 것은 여러번 호출해도 한번만 실행된다.

 

removeAllListeners를 통해 이벤트를 삭제하는 코드

myEvent.on('계속', ()=> {
    console.log('계속 리스닝');
});
myEvent.removeAllListeners('계속');
myEvent.emit('계속');

 

여러개의 이벤트에서 하나의 이벤트만 삭제하는 코드

const callback = () => {
    console.log('제발 좀 가세요');
};
myEvent.on('종료1', () => {
    console.log('안녕히가세요.');
});
myEvent.on('종료1', callback);

myEvent.removeListener('종료1', callback);
myEvent.emit('종료1');
console.log(myEvent.listenerCount('종료1'));

변수로 뺀 다음 삭제를 할 수 있다.