mix-async-generator
v1.0.2
Published
``` npm i mix-async-generator ```
Downloads
5
Readme
MIX-AsyncGenerator
Install
npm i mix-async-generator
How to use
example 1
const mixAG = new MixAsyncGenerator();
mixAG.join(
(async function* someAg1() {
yield 1;
yield 3;
})()
);
mixAG.join(
(async function* someAg2() {
yield 2;
yield 4;
})()
);
for await (const num of mixAG.toAsyncIterator()) {
console.log(num);
}
output
1
2
3
4
example 2
use
bench:boolean
to join an dispensable task.
const mixAG = new MixAsyncGenerator();
mixAG.join(
(async function* important() {
yield `important: 1`;
yield `important: 2`;
await sleep(100);
yield `important: 3`;
})()
);
mixAG.join(
(async function* dispensable() {
yield `dispensable: 1`;
yield `dispensable: 2`;
yield `dispensable: 3`;
})(),
{
bench: true,
}
);
for await (const str of mixAG.toAsyncIterator()) {
console.log(str);
}
output
important: 1
important: 2
dispensable: 1
dispensable: 2
dispensable: 3
important: 3
example 3
use
jumpGun:number>=1
to preload the specified amount.
const mixAG = new MixAsyncGenerator();
async function* yieldNum(start = 0, end = start + 1) {
while (start <= end) {
yield start++;
}
}
mixAG.join(yieldNum(1, 4));
mixAG.join(yieldNum(10, 19), {
jumpGun: 3,
});
for await (const str of mixAG.toAsyncIterator()) {
console.log(str);
}
output
1 // preload 1 result. this is default
10 // preload 3 result. config by 'jumpGun'
2
11
12
13
3
14
15
16
4
17
18
19