Class EventTool<T>

事件工具类

Example

const evtTool = new EventTool<{
timeupdate: (time: number) => void;
paused: () => void;
playing: () => void;
}>()
evtTool.on('paused', () => {})
evtTool.emit('paused')

Type Parameters

  • T extends EventToolType

Constructors

Properties

Methods

Constructors

Properties

#listeners: Map<keyof T, Set<T[keyof T]>> = ...

Methods

  • 触发事件

    Type Parameters

    • Type extends string | number | symbol

    Parameters

    • type: Type
    • Rest ...args: Type extends string
          ? T[Type<Type>] extends ((...args) => any)
              ? Parameters<any[any]>
              : never
          : never

    Returns void

  • 监听事件,首次触发后自动移除监听

    期望回调一次的事件,使用 once; 期望多次回调使用 on

    Type Parameters

    • Type extends string | number | symbol

    Parameters

    Returns (() => void)

      • (): void
      • Returns void

  • 在两个 EventTool 实例间转发消息

    Type Parameters

    • T1 extends EventToolType
    • T2 extends EventToolType
    • EvtType extends (keyof T1 | [keyof T1, keyof T2])[]

    Parameters

    • from: {
          on: (<Type>(type, listener) => (() => void));
      }
      • on: (<Type>(type, listener) => (() => void))
          • <Type>(type, listener): (() => void)
          • 监听 EventType 中定义的事件

            Type Parameters

            • Type extends string | number | symbol

            Parameters

            Returns (() => void)

              • (): void
              • Returns void

    • to: {
          emit: (<Type>(type, ...args) => void);
      }
      • emit: (<Type>(type, ...args) => void)
          • <Type>(type, ...args): void
          • 触发事件

            Type Parameters

            • Type extends string | number | symbol

            Parameters

            • type: Type
            • Rest ...args: Type extends string
                  ? T2[Type<Type>] extends ((...args) => any)
                      ? Parameters<any[any]>
                      : never
                  : never

            Returns void

    • evtTypes: EvtType

      需转发的消息类型

    Returns (() => void)

      • (): void
      • Returns void

    Example

    EventTool.forwardEvent(from, to, ['evtName']),