Skip to content

Class: D3PBus ​

Defined in: core/bus.ts:47

Asynchronous bus.

  • emit never runs a handler synchronously: delivery happens in a later microtask.
  • Deliveries start in emit order (FIFO). Handlers of one delivery run in subscription order, specific handlers before wildcard ones.
  • The handler list is snapshotted at delivery time, so (un)subscribing from a handler is safe.
  • A failing handler is reported with console.error and never prevents the others from running.
  • emit returns a promise settled once every handler has completed; idle() waits for all in-flight deliveries (including those triggered by handlers).

Constructors ​

Constructor ​

ts
new D3PBus(): D3PBus;

Returns ​

D3PBus

Methods ​

emit() ​

ts
emit<P>(event, ...args): Promise<void>;

Defined in: core/bus.ts:91

Emits an event. Handlers run later, in a microtask, in the order of the emits. The promise is resolved when they all ran.

Type Parameters ​

P ​

P

Parameters ​

event ​

D3PEvent<P>

args ​

...P extends void ? [] : [payload: P]

Returns ​

Promise<void>


hasHandlers() ​

ts
hasHandlers(event): boolean;

Defined in: core/bus.ts:61

Whether anything listens to event (the wildcard handlers do not count).

Parameters ​

event ​

symbol

Returns ​

boolean


idle() ​

ts
idle(): Promise<void>;

Defined in: core/bus.ts:101

Resolves when no delivery is in flight (also covers deliveries emitted by handlers).

Returns ​

Promise<void>


off() ​

ts
off<P>(event, handler): void;

Defined in: core/bus.ts:75

Removes a handler that was added with on.

Type Parameters ​

P ​

P

Parameters ​

event ​

D3PEvent<P>

handler ​

D3PHandler<P>

Returns ​

void


on() ​

ts
on<P>(event, handler): D3PUnsubscribe;

Defined in: core/bus.ts:53

Calls handler each time event is emitted. Returns the function that removes it.

Type Parameters ​

P ​

P

Parameters ​

event ​

D3PEvent<P>

handler ​

D3PHandler<P>

Returns ​

D3PUnsubscribe


onAny() ​

ts
onAny(handler): D3PUnsubscribe;

Defined in: core/bus.ts:83

Calls handler for every event of the bus, with its symbol and its payload.

Parameters ​

handler ​

D3PWildcardHandler

Returns ​

D3PUnsubscribe


once() ​

ts
once<P>(event, handler): D3PUnsubscribe;

Defined in: core/bus.ts:66

Subscribe once; the handler is removed before its first call.

Type Parameters ​

P ​

P

Parameters ​

event ​

D3PEvent<P>

handler ​

D3PHandler<P>

Returns ​

D3PUnsubscribe