"use strict"; const pipe = require("@promistream/pipe"); const debug = require("@promistream/debug"); const fromIterable = require("@promistream/from-iterable"); const forkSelect = require("./"); const collect = require("@promistream/collect"); (async () => { let [ a, b ] = await pipe([ fromIterable([ 0, 0, 0, 1, 1, 2 ]), debug("source"), forkSelect(2, (value) => { return value % 2; }) ]).read(); setTimeout(async () => { try { let bResults = await pipe([ b, // debug("pipeline B"), collect() ]).read(); console.log({ bResults }); // { bResults: [ 1, 1 ] } } catch (error) { console.error("error from B", error); } }, 1000); try { let aResults = await pipe([ a, // debug("pipeline A"), collect() ]).read(); console.log({ aResults }); // { aResults: [ 0, 0, 0, 2 ] } } catch (error) { console.error("error from A", error); } })();