aggregate-async-iterator v1.2.1
aggregate-async-iterator
Aggregates several async iterators into one (zip)
usage
import { aggregateRoundRobin, aggregateFifo } from "aggregate-async-iterator";
async function* sequence(name, time = 100, num = 10) {
for (let i = 0; i < num; i += 1) {
yield new Promise(resolve => setTimeout(resolve(name + i), time));
}
}
console.log("RR:");
for await (const r of aggregateRoundRobin([
sequence("A", 100, 3),
sequence("B", 35, 5)
])) {
console.log(r);
}
console.log("FIFO:");
for await (const r of aggregateFifo([
sequence("A", 100, 3),
sequence("B", 35, 5)
])) {
console.log(r);
}Prints interleaved sequences
RR:
A0
B0
A1
B1
A2
B2
B3
B4
FIFO:
A0
B0
A1
B1
A2
B2
B3
B4API
Table of Contents
aggregateFifo
Aggregate items from sevaral async iterators into one. Items are collected first in first out from the sources. Whatever source comes first will be delivered first.
Parameters
sourcesArray\<AsyncIterator\>
Returns AsyncIterable\ items collected from all sources
aggregateRoundRobin
Aggregate items from sevaral async iterators into one. Items are collected round robin from the sources. The 2nd. round of items will only be delivered after all sources have delivered their 1st. round (or reached their end).
Parameters
sourcesArray\<AsyncIterator\>
Returns AsyncIterable\ items collected from all sources
install
With npm do:
npm install aggregate-async-iteratorlicense
BSD-2-Clause
2 years ago
2 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago