Today Yewon Learned

[Node.js] 이벤트에 추가 정보 함께 전달하기 본문

javascript/Node.js

[Node.js] 이벤트에 추가 정보 함께 전달하기

데브워니 2021. 12. 4. 08:00

이벤트에 여러정보 전달하기

const EventEmitter = require('events');

const myEmitter = new EventEmitter();

myEmitter.on('test', (arg1, arg2, arg3) => {
    console.log(arg1);
    console.log(arg2);
    console.log(arg3);
});

myEmitter.emit('test', 'apple', 'banana', 'pear');

결과)

apple

banana

pear

 

 

콜백에서 받고 싶은 인자만 설정하기

const EventEmitter = require('events');

const myEmitter = new EventEmitter();

myEmitter.on('test', (arg1, arg2) => {
    console.log(arg1);
    console.log(arg2);
});

myEmitter.emit('test', 'apple', 'banana', 'pear');

결과)

apple

banana

 

 

콜백에서 받을 인자 갯수가  .emit(이벤트발생)메소드 인자보다 적을 경우

const EventEmitter = require('events');

const myEmitter = new EventEmitter();

myEmitter.on('test', (arg1, arg2, arg3, arg4) => {
    console.log(arg1);
    console.log(arg2);
    console.log(arg3);
});

myEmitter.emit('test', 'apple', 'banana', 'pear');

결과)

apple

banana

pear

undefined

 

실무에서는 이벤트에 여러 인자를 콜백하기 보다는 여러 정보를 담고 있는 객체 하나만 전달하는 것 선호

const EventEmitter = require('events');

const myEmitter = new EventEmitter();

const obj = {type: 'text', data: 'Hello Codeit', data: '2021-12-03'};

myEmitter.on('test', (info) => {
    console.log(info);
});

myEmitter.emit('test', obj);

결과)

{ type: 'text', data: '2021-12-03' }

Comments