EventEmitter.on()
Subscribe to a typed event.
on() returns the unsubscribe; Kernstra.events.on takes the same options as viewer.on.methodSubscribingsince 1.0.0
Signature
on<K extends keyof T>(event: K, handler: EventHandler<T[K]>, options?: SubscribeOptions): () => void
Parameters
| Parameter | Type | Description |
|---|---|---|
| event | K | An event name of this emitter's map: GlobalEventMap on Kernstra.events, ViewerEventMap on a viewer. |
| handler | EventHandler<T[K]> | Receives the typed payload. One that throws is logged and does not stop the others. |
| options? | SubscribeOptions | { once?: boolean; signal?: AbortSignal }. once hears the next emit only; signal unsubscribes when the AbortSignal aborts, so one AbortController can end every subscription a component made (a signal already aborted subscribes nothing). |
Returns
() => void The unsubscribe.
Example
TypeScript
const stop = viewer.on('pageChanged', ({ pageIndex }) => setCurrentPage(pageIndex)); stop(); const controller = new AbortController(); viewer.on('zoomChanged', ({ scale }) => setZoom(scale), { signal: controller.signal }); viewer.on('documentChanged', () => markDirty(), { signal: controller.signal }); controller.abort(); // both gone Kernstra.events.on('initialized', ({ version }) => console.log(version), { once: true });