mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-19 17:16:08 +08:00
4.3 KiB
4.3 KiB
类 EventEmitter
渲染进程、游戏进程通用类
protected events
declare var events: Record<string, Listener>
-
成员说明
该成员描述了所有注册的被注册的监听事件,键表示事件名称,值表示监听信息
-
Lienster
类型该类型描述了一个监听事件,包含下列属性:
fn
: 监听函数once
: 是否配置为once
模式,即触发一次后自动删除immediate
: 是否配置为immediate
模式,即注册时立刻触发一次
protected emitter
declare var emitter: Record<string, EmitFn>
-
成员说明
该成员描述了所有的自定义触发器,键表示事件名称,值表示触发器函数
-
EmitFn
类型该类型是一个函数
type EmitFn = (event: string, ...params: any[]) => any
-
参数说明
event
: 触发的事件类型params
: 传递给监听函数的参数
-
返回值:
emit
方法的返回值是该函数的返回值组成的数组
-
on()
function on(
event: string,
fn: (...params: any) => any,
options?: Partial<ListenerOptions>
): void
-
参数说明
event
: 要监听的事件fn
: 事件触发时执行的函数options
: 事件监听配置,配置内容包含:once
: 是否在触发一次后自动删除immediate
: 是否在监听时立刻触发一次,不传入任何参数
-
方法说明
该方法用于监听事件,当事件被触发时,所有的监听函数都会被执行一次,同时传入相应的参数。
-
示例
const { EventEmitter } = Mota.requireAll('class'); const myEmitter = new EventEmitter(); myEmitter.on('event', () => console.log('event emitted!'));
off()
function off(event: string, fn: (...params: any) => any): void
-
参数说明
event
: 要取消监听的事件fn
: 要取消监听的函数,要求传入函数的引用
-
方法说明
该方法用于取消监听一个事件,传入想要取消监听的函数的引用即可
-
示例
const fn = () => console.log('event emitted!'); myEmitter.on('event', fn); myEmitter.off('event', fn); // 取消监听
once()
function once(event: string, fn: (...params: any) => any): void
-
方法说明
等价于
on(event, fn, { once: true })
,传入的函数在触发一次后立刻删除 -
示例
myEmitter.once('event', () => console.log('only emit once!'));
emit()
function emit(event: string, ...params: any[]): any[]
-
参数说明
event
: 要触发的事件名称params
: 传递给事件的参数
-
返回值
所有触发的监听函数的返回值组成的数组
-
方法说明
用于触发一个类型的事件,执行某个事件所有监听器函数,并传入对应的参数
setEmitter()
function setEmitter(
event: string,
fn: (event: Listener[], ...params: any) => any
): void
-
参数说明
event
: 要设置触发器函数的事件fn
: 触发器函数,接受事件内容,以及emit
函数传入的参数作为参数,返回任意类型的值,作为emit
函数的返回值
-
方法说明
用于设置一个事件在触发时执行的函数,将返回值组成数组作为
emit
函数的返回值 -
示例
以下是一个监听函数的返回值是
Promise
,同时对其解包的示例myEmitter.setEmitter('event', async (event, ...params) => { const res = await Promise.all(event.map(v => v.fn())); return res; });
removeAllListeners()
function removeAllListeners(event?: string): void
-
参数说明
event
: 填写时,表示移除指定事件的所有监听器,不填时,表示移除所有事件的所有监听器
-
方法说明
该方法用于移除一个事件或者所有事件的所有监听器