[RxJS] Flatten a higher order observable with mergeAll in RxJS

Among RxJS flattening operators, switch is the most commonly used operator. However, it is important to get acquainted with mergeAll, another flattening operator which allows multiple concurrent inner observables. In this lesson we will explore mergeAll in detail.

 

复制代码
const clickObservable = Rx.Observable
  .fromEvent(document, 'click');

const clockObservable = clickObservable
  .map(click => Rx.Observable.interval(1000))
  .mergeAll(3); // allow 3 inner observables

// flattening
// Observable<Observable<number>> ---> Observable<number>

/*
--------+--------+------------------------
        \        \
         -0-1-2-3 -0-1-2-3-4-5-6
         
         mergeAll
         
----------0-1-2-3-405162738495...
*/

clockObservable
  .subscribe(x => console.log(x));
复制代码

 

posted @   Zhentiw  阅读(290)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示