Besides switch and mergeAll, RxJS also provides concatAll as a flattening operator. In this lesson we will see how concatAll handles concurrent inner Observables and how it is just mergeAll(1).
const clickObservable = Rx.Observable .fromEvent(document, ‘click‘); const clockObservable = clickObservable .map(click => Rx.Observable.interval(1000).take(5)) .concatAll(); // the same as .mergeAll(1) // flattening // Observable<Observable<number>> ---> Observable<number> /* --------+--------------+-+---- \ -0-1-2-3-4| concatAll ----------0-1-2-3-4-----0-1-2-3-4--0-1-2-3-4 */ clockObservable .subscribe(x => console.log(x));
[RxJS] Flatten a higher order observable with concatAll in RxJS
原文:http://www.cnblogs.com/Answer1215/p/6188384.html