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')