26 lines
908 B
JavaScript
26 lines
908 B
JavaScript
const { sleep, once, delay, every, stream } = require("mhysa");
|
|
|
|
async function main() {
|
|
const collector = stream
|
|
.concat(
|
|
stream.fromArray(["a\n", "b\n", "c\n"]),
|
|
stream.fromArray(["d", "e"]).pipe(stream.join("-")),
|
|
)
|
|
.pipe(stream.split("\n"))
|
|
.pipe(stream.flatMap(s => [s, s.toUpperCase()]))
|
|
.pipe(stream.collect({ objectMode: true }));
|
|
|
|
const collected = await once(collector, "data");
|
|
await sleep(1000); // undefined (after one second)
|
|
console.log(await delay(collected, 1000)); // [ 'a', 'A', 'b', 'B', 'c', 'C', 'd-e', 'D-E' ] (after another second)
|
|
await every(
|
|
[Promise.resolve("ab"), delay("cd", 1000)],
|
|
s => s.length === 2,
|
|
); // true (after another second)
|
|
await every(
|
|
[Promise.resolve("ab"), delay("cd", 1000)],
|
|
s => s.length === 1,
|
|
); // false (instantly)
|
|
}
|
|
main();
|