Interface IEventPubSub

Interface for event publish-subscribe pattern implementation Provides methods for subscribing to events, unsubscribing, and publishing events

interface IEventPubSub {
    publishAsync(type: EventType, event?: any): number;
    publishSync(type: EventType, event?: any): number;
    subscribe(type: EventType, handler: EventHandler): number;
    unsubscribe(type: EventType, index: number): void;
    unsubscribeAll(type: EventType, handler: EventHandler): void;
}

Implemented by

Methods

  • Publish an event asynchronously to all subscribers

    Parameters

    • type: EventType

      The event type to publish

    • Optionalevent: any

      Optional event data to pass to handlers

    Returns number

    The number of subscribers that were called

  • Publish an event synchronously to all subscribers

    Parameters

    • type: EventType

      The event type to publish

    • Optionalevent: any

      Optional event data to pass to handlers

    Returns number

    The number of subscribers that were called

  • Subscribe to an event type with a handler function

    Parameters

    • type: EventType

      The event type to subscribe to

    • handler: EventHandler

      The function to call when the event is published

    Returns number

    The index of the subscriber for later unsubscription

  • Unsubscribe a specific handler by its index

    Parameters

    • type: EventType

      The event type to unsubscribe from

    • index: number

      The index of the subscriber to remove

    Returns void

  • Unsubscribe all handlers for a specific event type

    Parameters

    • type: EventType

      The event type to unsubscribe all handlers from

    • handler: EventHandler

      The handler function to remove (all instances)

    Returns void