Skip to content

Class: EventEmitterService

Defined in: packages/event-emitter/src/event-emitter.service.ts:52

Injectable event emitter service.

Supports synchronous and asynchronous handlers, wildcard patterns, and typed events. Use @InjectEventEmitter() or @Inject(EVENT_EMITTER_TOKEN) to inject this service.

Dispatch performance: exact (non-wildcard) patterns are indexed in a Map for O(1) lookup, and each wildcard pattern's RegExp is compiled once at registration time, so emit/emitAsync/listenerCount never scan the full registration list nor recompile regexes on the request path.

Example

typescript
@Injectable()
export class OrderService {
  constructor(private readonly events: EventEmitterService) {}

  async placeOrder(order: Order) {
    await this.events.emitAsync('order.created', order);
  }
}

Constructors

Constructor

ts
new EventEmitterService(options?): EventEmitterService;

Defined in: packages/event-emitter/src/event-emitter.service.ts:68

Parameters

ParameterType
optionsEventEmitterModuleOptions

Returns

EventEmitterService

Methods

emit()

ts
emit(event, payload?): boolean;

Defined in: packages/event-emitter/src/event-emitter.service.ts:79

Emit an event synchronously. Returns true if at least one handler was invoked (async handlers are fired but not awaited — use emitAsync if you need to wait for them).

Parameters

ParameterType
eventstring | symbol
payload?unknown

Returns

boolean


emitAsync()

ts
emitAsync(event, payload?): Promise<unknown[]>;

Defined in: packages/event-emitter/src/event-emitter.service.ts:102

Emit an event and await all async handlers. Returns an array of values resolved by each handler.

Parameters

ParameterType
eventstring | symbol
payload?unknown

Returns

Promise<unknown[]>


listenerCount()

ts
listenerCount(event): number;

Defined in: packages/event-emitter/src/event-emitter.service.ts:204

Returns the number of handlers registered for event.

Parameters

ParameterType
eventstring | symbol

Returns

number


off()

ts
off<T>(event, handler?): this;

Defined in: packages/event-emitter/src/event-emitter.service.ts:153

Remove a specific handler (or all handlers for an event when omitted).

Type Parameters

Type ParameterDefault type
Tunknown

Parameters

ParameterType
eventstring | symbol
handler?EventHandler<T>

Returns

this


on()

ts
on<T>(event, handler): this;

Defined in: packages/event-emitter/src/event-emitter.service.ts:131

Register a persistent event handler.

Type Parameters

Type ParameterDefault type
Tunknown

Parameters

ParameterType
eventstring | symbol
handlerEventHandler<T>

Returns

this


once()

ts
once<T>(event, handler): this;

Defined in: packages/event-emitter/src/event-emitter.service.ts:142

Register a one-time event handler.

Type Parameters

Type ParameterDefault type
Tunknown

Parameters

ParameterType
eventstring | symbol
handlerEventHandler<T>

Returns

this


removeAllListeners()

ts
removeAllListeners(event?): this;

Defined in: packages/event-emitter/src/event-emitter.service.ts:189

Remove all listeners, optionally scoped to a specific event.

Parameters

ParameterType
event?string | symbol

Returns

this

Released under the MIT License.