RxJS操作符之mergeMap,switchMap,concatMap

  

const click$ = fromEvent(this.myButton.nativeElement, 'click');
    const interval$ = interval(1000);
   //mergeMap 每个click生产的流(interval) 都会保留。
   click$.pipe(
      mergeMap(() => interval$))
        .subscribe(num => console.log(num));

    //switchMap 只保留最后点击产生的interval
    click$.pipe(
      switchMap(() => interval$))
      .subscribe(num => console.log(num));
    
    //concatMap 每次click 新产生的interval需要等到当前的interval跑完后(3秒后) 才开始跑
    click$.pipe(
      concatMap(() => interval$.pipe(take(3))))
      .subscribe(num => console.log(num));

 

你可能感兴趣的:(RxJS)