Skip to content

emit ​

Synchronously trigger the specified event.

Method Signature ​

Provides a total of 8 overload signatures, where T is the event type, Events is the events object, and Meta is the metadata object.

Type-safe Basic Usage ​

This form can infer the event type from the event generic parameters provided when constructing FastEvent.

ts
//
emit<R = any, T extends Types = Types>(
    type: T,
    payload?: Events[T],
    options?: FastEventListenerArgs<Meta>
): R[]
// Specify retain
emit<R = any, T extends Types = Types>(
    type: T,
    payload?: Events[T],
    retain?: boolean
): R[]
  • Example
ts
import { 
FastEvent
} from 'fastevent';
const
emitter
= new
FastEvent
<{
click
: number;
focus
: string;
blur
: boolean;
}>();
emitter
.
emit
('
click', 100);
// // // //

String Event Type ​

Directly specify any string event type.

ts
emit<R = any, T extends string = string>(
    type: T,
    payload?: T extends Types ? Events[Types] : any,
    retain?: boolean
): R[]
emit<R = any, T extends string = string>(
    type: T,
    payload?: T extends Types ? Events[Types] : any,
    options?: FastEventListenerArgs<Meta>
): R[]

Type-safe Message Object Parameter ​

ts
emit<R = any, T extends string = string>(
    message: FastEventEmitMessage<{ [K in T]: K extends Types ? Events[K] : any }, Meta>,
    retain?: boolean
): R[]
emit<R = any, T extends string = string>(
    message: FastEventEmitMessage<{ [K in T]: K extends Types ? Events[K] : any }, Meta>,
    options?: FastEventListenerArgs<Meta>
): R[]

Message Object Parameter ​

ts
emit<R = any>(
    message: FastEventEmitMessage<Events, Meta>,
    retain?: boolean
): R[]
emit<R = any>(
    message: FastEventEmitMessage<Events, Meta>,
    options?: FastEventListenerArgs<Meta>
): R[]

Parameters ​

Parameter Type Description
type T The event type to trigger; can be automatically inferred
payload Events[T] Event payload data
options FastEventListenerArgs Whether to retain the event data
options.retain boolean Whether to retain the message; if true, the last message is retained. See Retain Messages
options.meta Record<string, any> Event metadata, passed to the listeners
options.abortSignal AbortSignal Passed to the listener function. See Abort Listeners
options.executor FastListenerExecutorArgs Controls listener execution behavior. See Executors

Return Value ​

The emit function returns the return values of all matching listener functions.

ts
const emitter = new FastEvent<{ click: number }>();

emit.on('click', () => 1)
emit.on('click', () => {throw new Error('custom'))
emit.on('click', async () =>2 )
emit.on('click', async () => {throw new Error('custom'))

const results = emit('click', 100);
// [1,Error,Promise,Promise]
  • You can specify a generic parameter R to indicate the return type of the listener functions; R[] is the return type of the listener functions, defaulting to any[].