注意这里阅读的是版本 8.10.46
编译后的ts
代码
EventEmitter
// 大多数 Node.js 核心 API 构建于惯用的异步事件驱动架构,
// 其中某些类型的对象(又称触发器,Emitter)会触发命名事件来调用函数(又称监听器,Listener)。
// 例如,net.Server 会在每次有新连接时触发事件,fs.ReadStream 会在打开文件时触发事件,stream会在数据可读时触发事件。
// http://nodejs.cn/api/events.html#events_passing_arguments_and_this_to_listeners
export class EventEmitter {//所有能触发事件的对象都是 EventEmitter 类的实例。
// emitter.on(eventName, listener) 的别名
addListener(event: string | symbol, listener: (...args: any[]) => void): this;
// 用于将一个或多个函数绑定到命名事件上。 事件的命名通常是驼峰式的字符串。
// eventEmitter.on() 用于注册监听器
on(event: string | symbol, listener: (...args: any[]) => void): this;
// 使用 eventEmitter.once() 可以注册最多可调用一次的监听器。 当事件被触发时,监听器会被注销,然后再调用。
once(event: string | symbol, listener: (...args: any[]) => void): this;
removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
removeAllListeners(event?: string | symbol): this;
setMaxListeners(n: number): this;
getMaxListeners(): number;
listeners(event: string | symbol): Function[];
// 当 EventEmitter 对象触发一个事件时,所有绑定在该事件上的函数都会被同步地调用。
// eventEmitter.emit() 用于触发事件
// eventEmitter.emit() 方法可以传任意数量的参数到监听器函数。
// 当监听器函数被调用时, this 关键词会被指向监听器所绑定的 EventEmitter 实例。
// 按照监听器注册的顺序,同步地调用每个注册到名为 eventName 的事件的监听器,并传入提供的参数。
// 如果事件有监听器,则返回 true,否则返回 false。
emit(event: string | symbol, ...args: any[]): boolean;
// A class method that returns the number of listeners for the given eventName registered on the given emitter.
listenerCount(type: string | symbol): number;
// Added in Node 6...
prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
// 返回已注册监听器的事件名数组。 数组中的值为字符串或 Symbol。
eventNames(): Array<string | symbol>;
}