์ด๋ฒคํธ
์ ์
์ด๋ค ์ฌ๊ฑด์ด ๋ฐ์ํ์์ ๋ํ๋ด๋ ์ ํธ
Node.js์์ ์ด๋ฒคํธ๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ํตํด ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด ๋ชจ๋ธ์ ์ด๋ฒคํธ ๋ฐ์์(Event Emitter)์ ์ด๋ฒคํธ ๋ฆฌ์ค๋(Event Listener) ๊ฐ์ ์ํธ ์์ฉ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ฒคํธ ๋ฐ์์๋ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์์ ์๋ฆฌ๊ณ , ์ด๋ฅผ ๋ฃ๊ณ ์๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ ํด๋น ์ด๋ฒคํธ์ ๋ํ ํ๋์ ์ ์ํฉ๋๋ค.
๋ฌธ๋ฒ
Node.js์ events ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ์ฃผ์ ๋ฉ์๋๋ก๋ on, emit, once ๋ฑ์ด ์์ต๋๋ค.
const EventEmitter = require('events');
JavaScript
๋ณต์ฌ
์ฃผ์ ๊ฐ์ฒด ๋ฐ ๋ฉ์๋
๊ฐ์ฒด ๋ฐ ์์ฑ | ์ค๋ช
|
EventEmitter | events ๋ชจ๋์์ ์ ๊ณตํ๋ ํด๋์ค๋ก, ์ด๋ฒคํธ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ํต์ฌ ์ญํ ์ ๋ด๋นํฉ๋๋ค. |
on(event, listener) | ์ง์ ๋ ์ด๋ฒคํธ์ ๋ํ ๋ฆฌ์ค๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. |
once(event, listener) | ์ง์ ๋ ์ด๋ฒคํธ์ ๋ํ ๋ฆฌ์ค๋๋ฅผ ํ ๋ฒ๋ง ์คํํ๋๋ก ์ถ๊ฐํฉ๋๋ค. |
removeListener(event, listener) | ์ด๋ฒคํธ์ ๋ํ ํน์ ๋ฆฌ์ค๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค. |
removeAllListeners([event]) | ๋ชจ๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋๋ ํน์ ์ด๋ฒคํธ์ ๋ชจ๋ ๋ฆฌ์ค๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค. |
setMaxListeners(n) | ์ด๋ฒคํธ์ ์ถ๊ฐํ ์ ์๋ ์ต๋ ๋ฆฌ์ค๋ ์๋ฅผ ์ค์ ํฉ๋๋ค. |
getMaxListeners() | ํ์ฌ ์ด๋ฒคํธ์ ์ถ๊ฐํ ์ ์๋ ์ต๋ ๋ฆฌ์ค๋ ์๋ฅผ ๋ฐํํฉ๋๋ค. |
listeners(event) | ์ง์ ๋ ์ด๋ฒคํธ์ ๋ํ ๋ฆฌ์ค๋ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค. |
emit(event[, arg1][, arg2][, ...]) | ์ง์ ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๊ณ , ๊ฐ ๋ฆฌ์ค๋์๊ฒ ์ ๋ฌํ ์ธ์๋ฅผ ์ง์ ํฉ๋๋ค. |
์์์ฝ๋
const EventEmitter = require('events');
// ์ด๋ฒคํธ ๋ฐ์์ ์์ฑ
const myEmitter = new EventEmitter();
// ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฑ๋ก
myEmitter.on('event', (arg) => {
console.log('์ด๋ฒคํธ ๋ฐ์:', arg);
});
// ์ด๋ฒคํธ ๋ฐ์
myEmitter.emit('event', '๋งค๊ฐ๋ณ์ ์ ๋ฌ');
JavaScript
๋ณต์ฌ
const EventEmitter = require('events');
const myEvent = new EventEmitter();
myEvent.addListener('event1', () => {
console.log('์ด๋ฒคํธ 1');
});
myEvent.on('event2', () => {
console.log('์ด๋ฒคํธ 2');
});
myEvent.on('event2', () => {
console.log('์ด๋ฒคํธ 2 ์ถ๊ฐ');
});
myEvent.once('event3', () => {
console.log('์ด๋ฒคํธ 3');
}); // ํ ๋ฒ๋ง ์คํ๋จ
myEvent.emit('event1'); // ์ด๋ฒคํธ ํธ์ถ
myEvent.emit('event2'); // ์ด๋ฒคํธ ํธ์ถ
myEvent.emit('event3');
myEvent.emit('event3'); // ์คํ ์ ๋จ
myEvent.on('event4', () => {
console.log('์ด๋ฒคํธ 4');
});
myEvent.removeAllListeners('event4');
myEvent.emit('event4'); // ์คํ ์ ๋จ
const listener = () => {
console.log('์ด๋ฒคํธ 5');
};
myEvent.on('event5', listener);
myEvent.removeListener('event5', listener);
myEvent.emit('event5'); // ์คํ ์ ๋จ
console.log(myEvent.listenerCount('event2'));
JavaScript
๋ณต์ฌ