EventEmitter는 특정 이벤트에 리스너 함수를 달아서, 이벤트가 발생했을 때 이를 캐치할 수 있도록 만들어진 것이다.
(이벤트 기반 프로그래밍, 비동기 프로그래밍)
EventEmitter는 다양한 메소드들이 있다.
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('case', () =>{
console.log('Hello World');
});
myEmitter.emit('case');
1. on 메소드
on 메소드는 이벤트 핸들러를 설정하는 메소드이다.
같은 용도로 addListener를 사용할 수 있다.
2. emit 메소드
emit 메소드는 인위적으로 이벤트를 발생시키기 위해 쓰는 메소드이다.
3. once 메소드
once 메소드는 특정 이벤트에 대한 이벤트 핸들러를 등록한다는 점에서 on 메소드와 유사하다.
한 가지 큰 차이점은 이벤트 핸들러가 해당 이벤트에 대해서 딱 한 번만 반응해서 실행되도록 한다.
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.once('case', () =>{
console.log('Hello World');
});
myEmitter.emit('case');
myEmitter.emit('case');
myEmitter.emit('case');
myEmitter.emit('case');
위 코드에서 emit 메소드로 case 이벤트를 계속 호출하였으나 once 메소드는 한 번 실행되고 난 후에는 실행되지 않기 때문에
Hello World가 한 번만 출력된다.
4. listeners 메소드
listeners 메소드는 특정 이벤트에 대한 이벤트 핸들러들을 출력해준다.
5. off 메소드
off 메소드는 이벤트 핸들러를 해제한다.