Rxjs takeWhile 和 filter 操作符的区别

简介: 官网链接:https://www.learnrxjs.io/learn-rxjs/operators/filtering/takewhile
import { of } from 'rxjs';
import { takeWhile, filter } from 'rxjs/operators';
// emit 3, 3, 3, 9, 1, 4, 5, 8, 96, 3, 66, 3, 3, 3
const source$ = of(3, 3, 3, 9, 1, 4, 5, 8, 96, 3, 66, 3, 3, 3);
// allow values until value from source equals 3, then complete
source$
  .pipe(takeWhile(it => it === 3))
  // log: 3, 3, 3
  .subscribe(val => console.log('takeWhile', val));
source$
  .pipe(filter(it => it === 3))
  // log: 3, 3, 3, 3, 3, 3, 3
  .subscribe(val => console.log('filter', val));

区别一目了然:

  • takeWhile, 当条件不满足时,Observable 设置为 completed 状态,停止 emit 值
  • filter, Observable 里所有满足条件的值都将被 emit
相关文章
rxjs 里 CombineLatest 操作符的一个使用场景
rxjs 里 CombineLatest 操作符的一个使用场景
RxSwift操作符操作符map、flatMap、flatMapLatest、filter的使用与区别
RxSwift操作符操作符map、flatMap、flatMapLatest、filter的使用与区别
323 1
|
12月前
Rxjs tap 操作符的使用场景介绍
Rxjs tap 操作符的使用场景介绍
rxjs ThrottleTime 和 debounceTime 的操作符区别
rxjs ThrottleTime 和 debounceTime 的操作符区别
|
JavaScript
rxjs Observable filter Operator 的实现原理介绍
rxjs Observable filter Operator 的实现原理介绍
rxjs 里 Skip 操作符的一个使用场景
rxjs 里 Skip 操作符的一个使用场景
关于rxjs里operators filter和map的详细讨论
关于rxjs里operators filter和map的详细讨论
关于rxjs里operators filter和map的详细讨论
RxJs combineLatest Operator 的数组用法
RxJs combineLatest Operator 的数组用法
140 0
RxJs combineLatest Operator 的数组用法