merge-async-iterators

Merge multiple async iterators

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
merge-async-iterators
0.2.15 years ago5 years agoMinified + gzip package size for merge-async-iterators in KB

Readme

merge-async-iterators
A simple async iterators merger
Requires ES2018 Async Iterationasync-iteration

Install

npm i merge-async-iterators

Usage

API

merge([...iterators], opts)
  • iterators Array of async iterables

  • opts

yieldIterator[=false] Yields {iterator, value} (instead of value)
Useful if you wanna know which iterator yielded the value
  • Returns A single merged async iterable

Example

const merge = require('merge-async-iterators');

const array = [1,2];
const iterable = (function*(){
  yield 3
  yield 4
})()
const asyncIterable = (async function*(){
  yield 5
  yield 6
})()

for await (const value of merge([array, iterable, asyncIterable])) {
  console.log(value)
}
1
2          // order isn't guaranteed
  // finished iterators' returns will yield as well
3
4

5          // async wil almost always come after normal ones
6

Alternatives