"use strict"; const Promise = require("bluebird"); const pipe = require("@promistream/pipe"); const simpleQueue = require("./"); const spy = require("@promistream/spy"); const parallelize = require("@promistream/parallelize"); const collect = require("@promistream/collect"); return Promise.try(() => { let queue = simpleQueue([ 0, 1, 2, 3, 4, 5, 6, 7 ]); return pipe([ queue.stream, spy((value) => { if (value < 5) { queue.push(value + 8); } }), parallelize(Infinity), collect() ]).read(); }).then((result) => { console.log(result); // [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ] });