Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- Spring
- SQL
- 암호학
- C#크롤링
- 대칭키암호시스템
- vscode
- c:forEach
- fullcalendar
- AndroidStudio
- 해시함수
- NPM
- JSTL
- 전자서명
- 동적쿼리
- mybatis
- 대칭키알고리즘
- 공개키암호시스템
- 무결성
- jsx
- jQuery
- node.js
- RequestMethod.POST
- 국제화
- react
- 서드파티모듈
- JavaScript
- Java
- MySQL
- c:choose
- 대칭키암호화
Archives
- Today
- Total
Today Yewon Learned
[Node.js] 비동기 프로그래밍과 이벤트 본문
Node.js의 이벤트
- 어떤 일이 발생했음을 알리는 신호
const EventEmitter = require('events'); // 'events'라는 코어 모듈 가져오기
const myEmitter = new EventEmitter(); // 'myEmitter' 객체 생성
myEmitter.on('test', () => { // 'myEmitter'객체가 두 메소드 호출 (on, emit)
console.log('Success!');
});
myEmitter.emit('test');
- 'events' 코어 모듈 : 클래스 하나를 외부에 공개 (EventEmitter 클래스 외부에 공개)
- EventEmitter : '이벤트 발송기', '이벤트 전파기' 로 해석되며, 이벤트를 사용하기 위해 필요
* EventEmitter 객체를 사용할 때는 이벤트를 발생시키기 전 콜백 설정을 먼저 해야함
* 하나의 이벤트에 대해 여러개의 콜백 설정 가능
- .on 메소드 : 이벤트 핸들러를 설정하는 메소드 , 어떤 이벤트가 발생했을 때 실행할 콜백을 등록하는 콜백 등록 (test라는 이벤트가 발생하면 Success!가 출력되는 콜백 등록)
- .addListener. 메소드 : on메소드와 동일
- .once 메소드 : on 메소드와 기능은 동일하지만, 해당 이벤트에 대해서 딱 한번만 반응해서 실행됨
- .emit 메소드 : 이벤트를 발생시키는 메소드
오류 발생 코드
const EventEmitter = require('events'); // 'events'라는 코어 모듈 가져오기
const myEmitter = new EventEmitter(); // 'myEmitter' 객체 생성
myEmitter.emit('test');
myEmitter.on('test', () => { // 'myEmitter'객체가 두 메소드 호출 (on, emit)
console.log('Success!');
});
'test'라는 이벤트를 발생시키고나서, 'on'메소드로 'test'이벤트에 대한 콜백 실행,
하지만 'test'이벤트가 먼저 발생되어 'on'메소드 콜백 실행안됨
즉, 이벤트를 발생시키기 전에 콜백설정을 먼저 해야함
하나의 이벤트에 여러개 콜백 설정 가능
예시)
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('test', () => {
console.log('1');
});
myEmitter.on('test', () => {
console.log('2');
});
myEmitter.on('test', () => {
console.log('3');
});
myEmitter.emit('test');
결과)
1
2
3
이벤트설정과 콜백설정은 하나의 이벤트 객체 안에서만 반응
예시)
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
const myEmitter2 = new EventEmitter();
myEmitter.on('test', () => {
console.log('1');
});
myEmitter.on('test', () => {
console.log('2');
});
myEmitter2.on('test', () => {
console.log('3');
});
myEmitter.emit('test');
결과)
1
2
'javascript > Node.js' 카테고리의 다른 글
| [Node.js] 서버와 클라이언트 (0) | 2021.12.04 |
|---|---|
| [Node.js] 이벤트에 추가 정보 함께 전달하기 (0) | 2021.12.04 |
| [Node.js] 비동기 프로그래밍과 콜백 (0) | 2021.11.16 |
| [Node.js] 모듈(module) (0) | 2021.11.16 |
| [Node.js] Node.js란? (0) | 2021.11.16 |
Comments