Options
All
  • Public
  • Public/Protected
  • All
Menu

Class EventEmitter<Events, Key>

Type parameters

  • Events

  • Key: keyof Events

Hierarchy

  • EventEmitter

Implements

Index

Methods

emit

  • emit<K>(event: K, value: Events[K]): void
  • Emit all listeners with payload.

    value

    Payload for event that passed to all listeners

    Type parameters

    • K: Key

    Parameters

    • event: K
    • value: Events[K]

    Returns void

emitCallback

  • emitCallback<K>(event: K): function
  • Creates callback that can be called with payload to emit event.

    ```ts const callback = events.emitCallback("newMessage")

    callback(message) // emits "newMessage" with message as payload

    Type parameters

    • K: Key

    Parameters

    • event: K

    Returns function

      • (value: Events[K]): void
      • Parameters

        • value: Events[K]

        Returns void

off

  • off(event: Key): void
  • Removes all listeners for the given event.

    example

    async function() { const promise = events.take("notificationReceived") events.off("notificationReceived") await promise // promise never resolves }

    Parameters

    • event: Key

    Returns void

on

  • Subscribes listener to specified event.

    Type parameters

    • K: Key

    Parameters

    • event: K
    • listener: Listener<Events[K]>

    Returns Unsubscribe

    Function that unsubscribe listener from the specified event

    function() {
      const unsubscribe = events.on("connected", () => {
        console.log("event connected received")
      })
      unsubscribe() // listener for connected won't be called anymore
    }

once

  • Subscribes to event, and when it received immediately unsubscribe.
    Unsubscribe function can be called at any time.

    const unsubscribe = events.once("newMessage", (message) => {
      console.log(message)
    })
    setTimeout(() => unsubscribe(), 300) // unsubscribe from event after 300 ms

    Type parameters

    • K: Key

    Parameters

    • event: K
    • listener: Listener<Events[K]>

    Returns Unsubscribe

take

  • take<K>(event: K): Promise<Events[K]>
  • Creates promise that resolves when specified event is received.

    Type parameters

    • K: Key

    Parameters

    • event: K

    Returns Promise<Events[K]>

    Promise resolved with payload of the event

    async function() {
      const message = await events.take("messageReceived")
    }

takeEither

  • takeEither<Success, Failure>(success: Success, failure: Failure): Promise<Events[Success]>
  • Creates promise that resolves when left event is received with payload of the event.
    Promise rejects when right event is received with payload of the event.

    async function() {
      try {
        const auth = await events.takeEither("authSuccess", "authFailure");
      } catch (authError) {
        console.error(authError);
      }
    }

    Type parameters

    • Success: Key

    • Failure: Key

    Parameters

    • success: Success
    • failure: Failure

    Returns Promise<Events[Success]>

takeTimeout

  • takeTimeout<K>(event: K, timeout: number): Promise<Events[K]>
  • Creates a promise that resolves when specified event is received.
    Promise is rejected when timeout is reached.

    Type parameters

    • K: Key

    Parameters

    • event: K
    • timeout: number

      milliseconds

    Returns Promise<Events[K]>

    Promise resolves with payload of the received event.

    async function() {
      try {
        const message = await events.takeTimeout("messageReceived", 300);
      } catch () {
        console.log("Timeout reached.");
      }
    }

Generated using TypeDoc