Nodejs学习笔记: 源码阅读
注意这里阅读的是版本 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>; }
相关推荐
kururunga 2020-05-01
shufen0 2020-01-16
dxyadc 2020-06-04
akcsdno 2020-01-04
htofly 2020-01-04
melonjj 2020-01-04
Pineapple 2014-05-29
强子 2019-12-19
huangzonggui 2019-12-11
图灵的梦 2013-07-08
LiLiLiLaLa 2011-04-14
wangxiaoxue 2019-10-20
PHP基础学习 2015-08-26
gongzhiyao0 2012-05-26
meleto 2019-09-07
huolan 2007-07-27
leiyanglove 2013-02-22
javamao00 2012-07-28