Skip to content

AsyncEventSource.once

AsyncEventSource › once

Type: <EventName extends StringKeys<EventMap>, Arguments extends CallbackArguments<EventMap, EventName>>(
name: EventName,
callback: (...$arguments: Arguments) => Promisable<void>,
thisArgument?: unknown
) => AsyncEventRef

Add an event listener that will be triggered only once.

Remarks:

Not refactored to parameter-object pattern, to keep the parity with Obsidian's Events.on (or once, correspondingly).

Example:

events.once('my-event', async (arg1, arg2) => {
await sleep(100);
console.log(arg1, arg2);
});