Skip to main content

AsyncQueue

@webda/core


Class: AsyncQueue<T>

Defined in: packages/core/src/core/asyncqueue.ts:5

A push-based async iterable: producers push, one consumer iterates. end() (or the consumer leaving the loop) finishes it; items pushed after the end are dropped.

Type Parameters​

T​

T

Implements​

  • AsyncIterable<T>

Constructors​

Constructor​

new AsyncQueue<T>(options?): AsyncQueue<T>

Defined in: packages/core/src/core/asyncqueue.ts:17

Parameters​

options?​

optional settings

size?​

(item) => number

measures an item in bytes, to track pendingBytes

Returns​

AsyncQueue<T>

Accessors​

ended​

Get Signature​

get ended(): boolean

Defined in: packages/core/src/core/asyncqueue.ts:24

Returns​

boolean

whether the queue is finished


pending​

Get Signature​

get pending(): number

Defined in: packages/core/src/core/asyncqueue.ts:54

Returns​

number

the number of items pushed and not yet consumed


pendingBytes​

Get Signature​

get pendingBytes(): number

Defined in: packages/core/src/core/asyncqueue.ts:47

Returns​

number

the size of the items pushed and not yet consumed (0 when no size is given)

Methods​

[asyncIterator]()​

[asyncIterator](): AsyncIterator<T>

Defined in: packages/core/src/core/asyncqueue.ts:89

Returns​

AsyncIterator<T>

the iterator

Implementation of​

AsyncIterable.[asyncIterator]


end()​

end(discard?): void

Defined in: packages/core/src/core/asyncqueue.ts:62

No more items.

Parameters​

discard?​

boolean = false

also drop the items not consumed yet

Returns​

void


next()​

next(): Promise<IteratorResult<T, any>>

Defined in: packages/core/src/core/asyncqueue.ts:76

Returns​

Promise<IteratorResult<T, any>>

the next item, without ending the queue (unlike breaking out of a for await)


push()​

push(item, size?): void

Defined in: packages/core/src/core/asyncqueue.ts:32

Parameters​

item​

T

the next item

size?​

number

its size in bytes (defaults to the size function's result)

Returns​

void