Stream을 사용하거자 Web Socket을 사용할 때 이벤트를 사용합니다. 이벤트 객체는 개발자가 직접 구현해서 사용할 수 있습니다. Node.js 에서는 기본 모듈로 events 를 지원하고 있습니다.
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');
이벤트를 직접 생성해서 코드에 붙일 수 있으면 훨씬 간단하게 기능을 구현할 수 있습니다.
'Programming' 카테고리의 다른 글
와이어샤크 우분투 설치 사용 방법 (0) | 2022.09.07 |
---|---|
JWT 비대칭키로 암호화 복호화 하는 법 (0) | 2022.09.07 |
개발 공부 하기전 알면 좋은 것들 회고록 (0) | 2022.09.05 |
Node.js file System 폴더 파일 지우기 폴더 내용 확인하기 (0) | 2022.09.04 |
Node.js Error Handling Object 에러 처리하기 (0) | 2022.09.03 |
댓글