maxcon
v2.4.0
Published
Run series of operations in a dependency driven, maximumly concurrent way.
Downloads
9
Readme
MAXCON
Run series of operations in a dependency driven, maximumly concurrent way.
Install
npm install --save maxcon
Usage
const Rx = require('rx');
const config = {
a: {
process: () => Rx.Observable.just('value a'),
},
b: {
process: () => Rx.Observable.just('value b'),
},
c: {
// `process` will be called with observables returned from task a and b
dependsOn: ['a', 'b'],
process: (upstream) => Rx.Observable.zip(upstream.a, upstream.b),
},
};
const maxcon = new Maxcon(config);
// Calling `connect` will do three things:
// 1. invoke all `process` functions once.
// 2. invoke `share` method of observables returned from `process` functions.
// 3. observables that are not depended on (no downstream) will be merged
// and converted to a ConnectableObservable (by calling `publish`) and
// then connected (by calling `connect`).
maxcon.connect();