Skip to main content

EventIterator

@webda/runtime


Class: EventIterator

Defined in: packages/runtime/src/utils/iterators.ts:15

Iterate over events

for await (const evt of new EventIterator(this.eventEmitter).iterate({"event": true})) {
console.log(evt);
}

This class should optimize to never use more than 1 listener per event / eventEmitter

Constructors​

Constructor​

new EventIterator(eventEmitter, events, prefix?, initValue?): EventIterator

Defined in: packages/runtime/src/utils/iterators.ts:29

Create an async iterator over event emitter events

Parameters​

eventEmitter​

EventEmitter<any> | AsyncEventEmitter<AsyncEventUnknown>

source emitter to listen on

events​

string | {[key: string]: true | ((data) => any); }

map of event names to transform functions (true = identity)

prefix?​

string

if set, wraps each yielded value in { [prefix]: value }

initValue?​

any

optional initial value to yield before listening

Returns​

EventIterator

Properties​

eventEmitter​

protected eventEmitter: EventEmitter<any> | AsyncEventEmitter<AsyncEventUnknown>

Defined in: packages/runtime/src/utils/iterators.ts:30

source emitter to listen on


events​

events: object

Defined in: packages/runtime/src/utils/iterators.ts:17

Index Signature​

[key: string]: (data) => any


initValue?​

protected optional initValue?: any

Defined in: packages/runtime/src/utils/iterators.ts:33

optional initial value to yield before listening


listeners​

listeners: object

Defined in: packages/runtime/src/utils/iterators.ts:16

Index Signature​

[key: string]: (evt) => void


prefix?​

protected optional prefix?: string

Defined in: packages/runtime/src/utils/iterators.ts:32

if set, wraps each yielded value in { [prefix]: value }


queue​

queue: any[] = []

Defined in: packages/runtime/src/utils/iterators.ts:18


resolve​

resolve: () => void

Defined in: packages/runtime/src/utils/iterators.ts:19

Returns​

void


running​

running: boolean

Defined in: packages/runtime/src/utils/iterators.ts:20

Methods​

iterate()​

iterate(): AsyncGenerator<any, void, unknown>

Defined in: packages/runtime/src/utils/iterators.ts:75

Async generator that yields event values as they arrive, until stopped

Returns​

AsyncGenerator<any, void, unknown>

Yields​

transformed event values (optionally wrapped with prefix key)


push()​

push(event, data): Promise<void>

Defined in: packages/runtime/src/utils/iterators.ts:54

Enqueue a transformed event value for the async iterator to yield

Parameters​

event​

string

event name used to look up the transform function

data​

any

raw event payload to transform and enqueue

Returns​

Promise<void>


stop()​

stop(): void

Defined in: packages/runtime/src/utils/iterators.ts:66

Stop the iterator

Returns​

void