events
[TOC]
索引
EventEmitter:
- emitter.on():
()
,监听事件,也可以使用 addListener()。 - emitter.off():
()
,移除事件监听,也可以使用 removeListener()。 - emitter.emit():
()
,发射事件,可以携带一些参数。 - emitter.once():
(eventName, listener)
,只监听一次发射的事件。 - emitter.eventNames():
()
,返回当前 emitter 对象注册的事件名数组; - emitter.getMaxListeners():
()
,默认:10
,返回当前 emitter 对象的最大监听器数量,可以通过setMaxListeners()
来修改。 - emitter.setMaxListeners():
()
, - emitter.listenerCount():
(eventName)
,返回当前 emitter 对象某一个事件的监听器的个数; - emitter.listeners():
(eventName)
,返回当前 emitter 对象某个事件监听器上所有的监听器数组; - emitter.prependListener():
()
,将监听事件添加到最前面。 - emitter.prependOnceListener():
()
,将监听事件添加到最前面,但是只监听一次。 - emitter.removeAllListeners():
(eventName?)
,移除所有的监听器。
events
EventEmitter
on()@【
emitter.on():()
,监听事件,也可以使用 addListener()。
:``,
:``,
:``,
返回:
:``,
off()@【
emitter.off():()
,移除事件监听,也可以使用 removeListener()。
:``,
:``,
:``,
返回:
:``,
emit()@【
emitter.emit():()
,发射事件,可以携带一些参数。
:``,
:``,
:``,
返回:
:``,
eventNames()【
emitter.eventNames():()
,返回当前 emitter 对象注册的事件名数组;
:``,
:``,
:``,
返回:
:``,
getMaxListeners()【
emitter.getMaxListeners():()
,默认:10
,返回当前 emitter 对象的最大监听器数量,可以通过setMaxListeners()
来修改。
:``,
:``,
:``,
返回:
:``,
setMaxListeners()【
:``,
:``,
:``,
返回:
:``,
示例:
****:
js****:
js****:
js
核心特性:
****:
js****:
js****:
js
注意事项:
****:
js****:
js****:
js
listenerCount()【
emitter.listenerCount():(eventName)
,返回当前 emitter 对象某一个事件的监听器的个数;
:``,
:``,
:``,
返回:
:``,
listeners()【
emitter.listeners():(eventName)
,返回当前 emitter 对象某个事件监听器上所有的监听器数组;
:``,
:``,
:``,
返回:
:``,
once()
emitter.once():(eventName, listener)
,只监听一次发射的事件。
const EventEmitter = require('events')
const emitter = new EventEmitter()
// 只监听第一次发射的事件
emitter.once('click', (args) => {
console.log('监听到事件', args)
})
setTimeout(() => {
// 发射了2次事件
emitter.emit('click', 'coderwhy')
emitter.emit('click', 'coderwhy')
}, 2000)
prependListener()
emitter.prependListener():()
,将监听事件添加到最前面。
emitter.on('click', (args) => {
console.log('a监听到事件', args)
})
// b监听事件会被放到前面
emitter.prependListener('click', (args) => {
console.log('b监听到事件', args)
})
prependOnceListener()
emitter.prependOnceListener():()
,将监听事件添加到最前面,但是只监听一次。
emitter.prependOnceListener('click', (args) => {
console.log('c监听到事件', args)
})
removeAllListeners()
emitter.removeAllListeners():(eventName?)
,移除所有的监听器。
// 移除emitter上的所有事件监听
emitter.removeAllListeners()
// 移除emitter上的click事件监听
emitter.removeAllListeners('click')