Skip to content

构造函数

核心事件发射器类FastEvent,提供事件发布/订阅功能,支持:

  • 事件订阅(on/once)
  • 事件发布(emit/emitAsync)
  • 通配符匹配
  • 事件作用域(scope)
  • 保留事件(retain)
  • 异步事件处理

构造函数

ts
constructor(options?: FastEventOptions<Meta, Context>)


 type FastEventOptions<Meta = Record<string, any>, Context = any> = {
    id?: string
    debug?: boolean
    // 事件分隔符
    delimiter?: string
    // 监听器函数执行上下文
    context?: Context
    // 当执行监听器函数出错时是否忽略,默认true
    ignoreErrors?: boolean
    // 额外的全局元数据,当触发事件时传递给监听器
    meta?: Meta
    // 当创建新监听器时回调
    onAddListener?: (type: string[], listener: FastEventListener) => void
    // 当移除监听器时回调
    onRemoveListener?: (type: string[], listener: FastEventListener) => void
    // 当清空监听器时回调
    onClearListeners?: () => void
    // 当监听器函数执行出错时的回调,用于诊断时使用,可以打印错误信息
    onListenerError?: ((type: string, error: Error) => void)
    // 当执行监听器前时回调,返回false代表取消执行
    onBeforeExecuteListener?: (message: FastEventMessage<any, Meta>, args: FastEventListenerArgs<Meta>) => boolean | void
    // 当执行监听器后时回调
    onAfterExecuteListener?: (message: FastEventMessage<any, Meta>, returns: any[], listeners: FastListenerNode[]) => void
    //全局执行器
    executor?: FastListenerExecutorArgs
}

id

  • 类型:string
  • 默认值:自动生成

可选,唯一标识。

debug

  • 类型:boolean
  • 默认值:false

可选,调试模式。开启后可以启用Redux DevTools调试事件,详见调试工具

delimiter

  • 类型:string
  • 默认值:/

可选,事件分隔符,用于分隔多层事件。

context

  • 类型:any
  • 默认值:this

可选,监听器函数执行上下文,默认是FastEvent实例。

ignoreErrors

  • 类型:boolean
  • 默认值:true

可选,当执行监听器函数出错时是否忽略错误,默认true。即捕获错误并返回错误对象,而不是触发错误。

meta

  • 类型:Meta
  • 默认值:undefined

可选,全局元数据,当触发事件时传递给监听器函数。

onAddListener

  • 类型:(type: string[], listener: FastEventListener) => void
  • 默认值:undefined

可选,当创建新监听器时回调。

onRemoveListener

  • 类型:(type: string[], listener: FastEventListener) => void
  • 默认值:undefined

可选,当移除监听器时回调。

onClearListeners

  • 类型:() => void
  • 默认值:undefined

可选,当清空监听器时回调。

onListenerError

  • 类型:(type: string, error: Error) => void
  • 默认值:undefined

可选,当执行监听器函数出错时的回调,用于诊断时使用,可以打印错误信息。

onBeforeExecuteListener

  • 类型:(message: FastEventMessage<any, Meta>, args: FastEventListenerArgs<Meta>) => boolean | void
  • 默认值:undefined

可选,当执行监听器前时回调,返回 false 代表取消执行。

onAfterExecuteListener

  • 类型:(message: FastEventMessage<any, Meta>, returns: any[], listeners: FastListenerNode[]) => void
  • 默认值:undefined

可选,当执行监听器后时回调。

executor

  • 类型:FastListenerExecutorArgs
  • 默认值:undefined

可选,全局执行器,用于自定义如何执行监听器函数。

泛型参数

ts
class FastEvent<
    Events extends FastEvents = FastEvents,
    Meta extends Record<string, any> = Record<string, any>,
    Context = never,
    Types extends keyof Events = Exclude<keyof Events, number | symbol>
>

Events

事件类型定义,继承自FastEvents接口。

Meta

全局事件元数据类型。

Context

监听器函数执行上下文类型。

Types

事件类型的键名类型,默认为 Events 的键名类型