Node -- event

171 阅读1分钟

前言

所有能触发事件的对象都是 EventEmitter 类的实例。 这些对象开放了一个 eventEmitter.on() 函数,允许将一个或多个函数绑定到会被对象触发的命名事件上。 事件名称通常是驼峰式的字符串,但也可以使用任何有效的 JavaScript 属性名。

const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();
myEmitter.on('event', () => {
  console.log('触发了一个事件!');
});
myEmitter.emit('event');

EventEmitter 类

######类属性defaultMaxListeners

  • 每个事件默认可以注册最多 10 个监听器,EventEmitter 实例的默认值可以使用 EventEmitter.defaultMaxListeners 属性改变。

事件

newListener(eventName,listener)

一个监听器被添加到其内部监听器数组之前触发自身的 'newListener' 事件。

removeListener(eventName,listener)

方法

addListener(eventName, listener)

on(eventName, listener)

once(eventName, listener)

prependListener(eventName, listener)

添加 listener 函数到名为 eventName 的事件的监听器数组的开头

prependOnceListener(eventName, listener)

emit(eventName[, ...args])

eventNames()

返回已注册监听器的事件名数组

listeners(eventName)

eventName 的事件的监听器数组的副本。

rawListeners(eventName)

返回 eventName 事件的监听器数组的拷贝,包括封装的监听器(例如由 .once() 创建的)

listenerCount(eventName)

正在监听名为 eventName 的事件的监听器的数量。

removeListener(eventName, listener)

off(eventName, listener)

removeAllListeners([eventName])

setMaxListeners(n)

getMaxListeners()

返回 EventEmitter 当前的最大监听器限制值