You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
801 B
JavaScript

"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 ]
});