DWS Packages
    Preparing search index...

    Class TypedEventEmitter<TEvents>

    A generic event emitter class that allows for type-safe event handling.

    Type Parameters

    • TEvents extends EventMap

      The type of events and their payloads.

    Hierarchy

    • EventEmitter
      • TypedEventEmitter
    Index

    Constructors

    • Type Parameters

      • TEvents extends EventMap

        The type of events and their payloads.

      Parameters

      • Optionaloptions: EventEmitterOptions

      Returns TypedEventEmitter<TEvents>

    Methods

    • The Symbol.for('nodejs.rejection') method is called in case a promise rejection happens when emitting an event and captureRejections is enabled on the emitter. It is possible to use events.captureRejectionSymbol in place of Symbol.for('nodejs.rejection').

      import { EventEmitter, captureRejectionSymbol } from 'node:events';

      class MyClass extends EventEmitter {
      constructor() {
      super({ captureRejections: true });
      }

      [captureRejectionSymbol](err, event, ...args) {
      console.log('rejection happened for', event, 'with', err, ...args);
      this.destroy(err);
      }

      destroy(err) {
      // Tear the resource down here.
      }
      }

      Parameters

      • error: Error
      • event: string | symbol
      • ...args: any[]

      Returns void

      v13.4.0, v12.16.0

    • Registers an event listener for the specified event (alias for on).

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event to listen for.

      Parameters

      • event: KEvent

        The event name to listen for.

      • listener: (...args: TEvents[KEvent]) => void

        The callback function that handles the event.

      Returns this

      This instance for chaining.

      class MyEmitter extends TypedEventEmitter<{ baz: [boolean] }> {}
      const emitter = new MyEmitter();
      emitter.addListener('baz', payload => {
      console.log(payload); // payload is boolean
      });
    • Emits an event with the specified payload.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event to emit.

      Parameters

      Returns boolean

      Whether the event had listeners.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      emitter.emit('foo', 'hello');
    • Returns an array listing the events for which the emitter has registered listeners.

      import { EventEmitter } from 'node:events';

      const myEE = new EventEmitter();
      myEE.on('foo', () => {});
      myEE.on('bar', () => {});

      const sym = Symbol('symbol');
      myEE.on(sym, () => {});

      console.log(myEE.eventNames());
      // Prints: [ 'foo', 'bar', Symbol(symbol) ]

      Returns (string | symbol)[]

      v6.0.0

    • Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to events.defaultMaxListeners.

      Returns number

      v1.0.0

    • Returns the number of listeners for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event.

      Parameters

      Returns number

      The number of listeners.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      emitter.on('foo', () => {});
      const count = emitter.listenerCount('foo');
    • Returns a copy of the array of listeners for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event.

      Parameters

      Returns ((...args: TEvents[KEvent]) => void)[]

      An array of listener functions.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      emitter.on('foo', () => {});
      const listeners = emitter.listeners('foo');
    • Removes an event listener for the specified event (alias for removeListener).

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event.

      Parameters

      • event: KEvent

        The event name.

      • listener: (...args: TEvents[KEvent]) => void

        The callback function to remove.

      Returns this

      This instance for chaining.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      const handler = (payload: string) => {};
      emitter.on('foo', handler);
      emitter.off('foo', handler);
    • Registers an event listener for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event to listen for.

      Parameters

      • event: KEvent

        The event name to listen for.

      • listener: (...args: TEvents[KEvent]) => void

        The callback function that handles the event.

      Returns this

      This instance for chaining.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      emitter.on('foo', payload => {
      console.log(payload); // payload is string
      });
    • Registers a one-time event listener for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event to listen for.

      Parameters

      • event: KEvent

        The event name to listen for.

      • listener: (...args: TEvents[KEvent]) => void

        The callback function that handles the event.

      Returns this

      This instance for chaining.

      class MyEmitter extends TypedEventEmitter<{ bar: [number] }> {}
      const emitter = new MyEmitter();
      emitter.once('bar', payload => {
      console.log(payload); // payload is number
      });
    • Adds a listener to the beginning of the listeners array for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event.

      Parameters

      • event: KEvent

        The event name.

      • listener: (...args: TEvents[KEvent]) => void

        The callback function to add.

      Returns this

      This instance for chaining.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      emitter.prependListener('foo', payload => {
      console.log(payload);
      });
    • Adds a one-time listener to the beginning of the listeners array for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event.

      Parameters

      • event: KEvent

        The event name.

      • listener: (...args: TEvents[KEvent]) => void

        The callback function to add.

      Returns this

      This instance for chaining.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      emitter.prependOnceListener('foo', payload => {
      console.log(payload);
      });
    • Returns a copy of the array of raw listeners for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event.

      Parameters

      Returns ((...args: TEvents[KEvent]) => void)[]

      An array of raw listener functions.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      emitter.on('foo', () => {});
      const rawListeners = emitter.rawListeners('foo');
    • Removes all listeners, or those of the specified eventName.

      It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

      Returns a reference to the EventEmitter, so that calls can be chained.

      Type Parameters

      • E extends string | symbol

      Parameters

      • OptionaleventName: string | symbol

      Returns this

      v0.1.26

    • Removes an event listener for the specified event.

      Type Parameters

      • KEvent extends string | number | symbol

        The type of event.

      Parameters

      • event: KEvent

        The event name.

      • listener: (...args: TEvents[KEvent]) => void

        The callback function to remove.

      Returns this

      This instance for chaining.

      class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
      const emitter = new MyEmitter();
      const handler = (payload: string) => {};
      emitter.on('foo', handler);
      emitter.removeListener('foo', handler);
    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • n: number

      Returns this

      v0.3.5