목차
Node.js의 이벤트
events 모듈
EventEmitter 객체 - on() 메서드 / emit() 메서드
※ Node.js는 이벤트 기반 애플리케이션에 적합.
Node.js의 이벤트
1.
컴퓨터의 모든 동작은 이벤트에 해당.
(예) 연결이 이루어 지거나 파일이 열릴 때.
2.
Node.js의 객체는 이벤트를 발생시킬 수 있음.
(예) 파일을 열고 닫을 때 readStream 객체가 이벤트를 발생.
[예제]
var fs = require('fs');
var rs = fs.createReadStream('./hz.txt');
rs.on('open', function () {
console.log('The file is open');
});
events 모듈
[정의]
사용자 정의 이벤트를 (생성, 실행, 수신) 가능.
1. 내장 모듈 중 하나. 더 자세히 보기 .
2. 모든 이벤트 속성과 메서드는 EventEmitter 객체의 인스턴스임.
3. 이벤트 속성/메서드 접근하려면, EventEmitter 객체를 먼저 생성.
[구문]
var events = require('events');
var eventEmitter = new events .EventEmitter();
EventEmitter 객체 - on() 메서드 / emit() 메서드
※ 아래 예제 코드를 먼저 본 후, 아래 내용 확인 !!
events 모듈의 EventEmitter() 메서드로 eventEmitter 객체 생성 후, eventEmitter 객체의 on() 메서드 활용해 이벤트 핸들러 (= 이벤트 발생 시 실행 내용)를 특정 이벤트와 묶은 후, eventEmitter 객체의 emit() 메서드를 이용해 이벤트를 촉발시키면 이벤트핸들러에 정의된 함수가 실행됨.
[예제]
var events = require('events'); // events 모듈 사용.
var eventEmitter = new events .EventEmitter(); // 객체 생성.
// 이벤트 핸들러 (= 이벤트 발생 시 실행할 내용) 생성.
var myEventHandler = function () {
console.log('I love you');
}
// 이벤트 핸들러를 love 이벤트에 할당.
eventEmitter .on('love ', myEventHandler);
// 'love ' 이벤트 촉발. (이벤트 핸들러에 정의한 함수 내용이 실행됨.)
eventEmitter .emit('love ');
주소 복사
랜덤 이동
최신댓글