"use strict"; const Promise = require("bluebird"); const pipe = require("@promistream/pipe"); const dynamic = require("./"); const rangeNumbers = require("@promistream/range-numbers"); const map = require("@promistream/map"); const filter = require("@promistream/filter"); const collect = require("@promistream/collect"); const parallelize = require("@promistream/parallelize"); function createMap() { return map((number) => number * 2); } function createFilter() { return filter(() => false); } return Promise.try(() => { return pipe([ rangeNumbers(0, 10), dynamic((number) => { if (number % 2 === 0) { return createMap; } else { return createFilter; } }), parallelize(3), collect() ]).read(); }).then((result) => { console.log(result); // [ 0, 4, 8, 12, 16 ] });