eventName
[,…args]
)eventName
이벤트 발생시킴
args
를 콜백함수의 인자로 넘겨줌
eventName
, listener
)eventName
이벤트에 listener
리스너 추가
( =eventName
이벤트 발생시 listener
콜백함수 실행)
sample code
const eventEmitter = new EventEmitter() eventEmitter.on(‘connection’, (stream) => console.log(‘someone connected!’))
result
someone connected!
eventName
, listener
)eventName
이벤트에 listener
콜백함수 실행후 listener
삭제
즉, 처음 한번만 이벤트를 수행함. 다음번 이벤트의 호출에는 listener
작동X
sample code
const eventEmitter = new EventEmitter() eventEmitter.once(‘foo’, () => console.log(‘a’)) eventEmitter.emit(‘foo’) eventEmitter.emit(‘foo’)
result
a
eventName
, listener
)eventName
이벤트에 등록된 리스너큐의 제일 앞에 listener
콜백 추가
sample code
const eventEmitter = new EventEmitter() eventEmitter.once(‘foo’, () => console.log(‘a’)) eventEmitter.prependListener(‘foo’, () => console.log(‘b’)) eventEmitter.emit(‘foo’)
result
b a
eventName
, listener
)eventName
이벤트에 등록된 리스너큐의 제일 앞에 listener
콜백 추가
eventName
이벤트가 한번 실행된 이후에는 해당 listener
삭제
즉, 다음 이벤트의 호출에는 동작하지 않음
sample code
const eventEmitter = new EventEmitter() eventEmitter.once(‘foo’, () => console.log(‘a’)) eventEmitter.prependOnceListener(‘foo’, () => console.log(‘b’)) eventEmitter.emit(‘foo’)
result
b a
eventName
, listener
)removeListener
와 같은 역할 - eventName
이벤트의 listener
리스너를 삭제함
const ee = new EventEmitter()
const onceListener = () => console.log(`onceListener`)
const prependOnceListener = () => console.log(`prependOnceListener`)
const onListener = () => console.log(`onListener`)
const prependListener = () => console.log(`prependListener`)
ee.once(`foo`, onceListener)
ee.prependOnceListener(`foo`, prependOnceListener)
ee.on(`foo`, onListener)
ee.prependListener(`foo`, prependListener)
console.log(ee.listeners(`foo`))
[
[Function: prependListener],
[Function: prependOnceListener],
[Function: onceListener],
[Function: onListener]
]
여기서 EventEmitter가 listener들을 큐와 같은 자료구조에 저장하는 듯하다
on
또는 once
는 큐의 제일 마지막에 Listener를 추가, prependListener
또는 prependOnceListener
는 큐의 제일 앞에 Listener를 추가한다.
foo
Eventee.emit(`foo`)
prependListener
prependOnceListener
onceListener
onListener
첫번째 ’foo’
event가 실행된 후, prependOnceListener
와 onceListener
를 이용하여 추가된 listener들은 실행 후 삭제될 것이다.
foo
Eventee.emit(`foo`)
prependListener
onListener
따라서 두번째 ’foo’
event가 실행될 때는 [Function: prependOnceListener]
와 [Function: onceListener]
는 실행되지 않는다.