Skip to main content

Agent.emit() method

Broadcasts an Event to potential listeners.

Listeners are IEventListener instances that declare eventTypes and implement an async onEvent({type, data}, context) method. Note that IAgentPlugin is also an IEventListener so plugins can be listeners for events.

During creation, the agent automatically registers listener plugins to the eventTypes that they declare.

Events are processed asynchronously, so the general pattern to be used is fire-and-forget. Ex: agent.emit('foo', {eventData})

In situations where you need to make sure that all events in the queue have been exhausted, the Promise returned by emit can be awaited. Ex: await agent.emit('foo', {eventData})

In case an error is thrown while processing an event, the error is re-emitted as an event of type CoreEvents.error with a EventListenerError as payload.

Note that await agent.emit() will NOT throw an error. To process errors, use a listener with eventTypes: [ CoreEvents.error ] in the definition.

Signature:

emit(eventType: string, data: any): Promise<void>;

Parameters

ParameterTypeDescription
eventTypestringthe type of event being emitted
dataanyevent payload. Use the same data type for events of a particular eventType.

Returns:

Promise<void>