We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nodejs 大多数的核心API依赖异步的事件驱动,events 模块提供了触发器和监听器,通过触发命名事件来调用监听器。
这些能够触发事件的API都是EventEmitter类的实例。
EventEmitter 类提供的方法有很多,但是常用的只有几个。
on(eventName, listener) : 添加 listener函数到名为eventName的事件监听器数组的末尾,不会检查listener是否已被添加,传入同名的eventName和listener 会导致listener添加多次。
listener
eventName
返回值是当前事件实例
const EventEmitter = require('events') const emitter = new EventEmitter() emitter.on('event', () => { console.log('event') }) emitter.emit('event')
emit(eventName [,args]): 按照监听器注册的顺序,同步的调用每个注册到名为eventName的事件的监听器,并传入提供的参数,如果事件有监听器返回true,否则返回false
true
false
addListener: on(eventName, listener) 的别名
removeListener(eventName, listener): 从名为eventName的监听器数组中移除指定的listener,返回值是当前事件实例
注意:
removeListener
removeAllListener
const EventEmitter = require('events') const emitter = new EventEmitter() const callbackA = () => { console.log('A') emitter.removeListener('event', callbackB) } const callbackB = () => { console.log('B') } emitter.on('event', callbackA) emitter.on('event', callbackB) emitter.emit('event')
off(eventName, listener): removeListener(eventName, Listener)的别名
removeAllListener(eventName): 移除全部监听器或指定的 eventName 事件的监听器。返回值是当前事件实例。
once(eventName, listener): 添加单次监听器 listener 到名为 eventName 的事件。 当 eventName 事件下次触发时,监听器会先被移除,然后再调用。
eventNames():返回已注册监听器的事件名数组。
const EventEmitter = require('events') const emitter = new EventEmitter() emitter.on('event', () => {}) emitter.on('foo', () => {}) console.log(emitter.eventNames()) // ['event', 'foo']
'removeListener'
newListener
其他的不常用的一些方法可以查看官方文档
nodejs文档
The text was updated successfully, but these errors were encountered:
No branches or pull requests
node.js events模块
nodejs 大多数的核心API依赖异步的事件驱动,events 模块提供了触发器和监听器,通过触发命名事件来调用监听器。
这些能够触发事件的API都是EventEmitter类的实例。
EventEmitter 类
EventEmitter 类提供的方法有很多,但是常用的只有几个。
方法
on(eventName, listener) : 添加
listener
函数到名为eventName
的事件监听器数组的末尾,不会检查listener
是否已被添加,传入同名的eventName
和listener
会导致listener
添加多次。返回值是当前事件实例
emit(eventName [,args]): 按照监听器注册的顺序,同步的调用每个注册到名为
eventName
的事件的监听器,并传入提供的参数,如果事件有监听器返回true
,否则返回false
addListener: on(eventName, listener) 的别名
removeListener(eventName, listener): 从名为
eventName
的监听器数组中移除指定的listener
,返回值是当前事件实例注意:
listener
;removeListener
和removeAllListener
不会从监听器数中移除listener
off(eventName, listener): removeListener(eventName, Listener)的别名
removeAllListener(eventName): 移除全部监听器或指定的
eventName
事件的监听器。返回值是当前事件实例。once(eventName, listener): 添加单次监听器
listener
到名为eventName
的事件。 当eventName
事件下次触发时,监听器会先被移除,然后再调用。eventNames():返回已注册监听器的事件名数组。
常用事件
'removeListener'
事件在listener
被移除后触发newListener
事件在添加新的监听器时触发。在newListener
回调中注册的同名事件的监听器会被注册在改事件的监听器数组的前面。其他的不常用的一些方法可以查看官方文档
参考
nodejs文档
The text was updated successfully, but these errors were encountered: