Rxjs - Operators - MergeAll

Signature

export declare function mergeAll<T>(concurrent?: number): T;

Parameters

接受一个可选参数 - 并存流的数量

Sample

var clicks = Rx.Observable.fromEvent(document, 'click');
var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(10));
var firstOrder = higherOrder.mergeAll(2);
firstOrder.subscribe(x => console.log(x));

解释

mergeAll 比较好理解, 首先他是给高阶的流用的,任意的子流发出值都会传递到外面

所有的子流都结束,他才结束,就像个管道的统一出口
任一子流error, 他error

默认共存流数量为所有流都并存

这个例子并存为2, 也就是在前两个流结束前,你click是不是产生第三个流的,更不会merge进去(但他会记住等机会再merge进去)
只有当某一个流结束了,你才能产生一个新流,总数保持最多两个流merge