RxJS partition

2020-10-13 18:50 更新

将源 Observable 分为两个,一个具有满足谓词的值,另一个具有不满足谓词的值。

  1. partition<T>(source: any, predicate: (value: T, index: number) => boolean, thisArg?: any): [Observable<T>, Observable<T>]

参量

资源 类型:any
谓词 评估源Observable发出的每个值的函数。如果返回true,则在返回数组的第一个Observable false上发射该值,如果 该值在数组的第二个Observable上发射。该 index参数是i从订阅以来发生的第i个源发射的编号0
thisArg 可选的。默认值为undefined。一个可选的参数来确定的值this 的predicate功能。

退货

[Observable<T>, Observable<T>]:具有两个 Observables 的数组:一个具有通过谓词的值,另一个具有未通过谓词的值。

描述

类似于 filter,但返回两个 Observables:一个类似于的输出 filter,另一个则具有未通过条件的值。

大理石分割图

partition 输出带有两个 Observable 的数组,该数组通过给定 predicate 函数对源 Observable 中的值进行分区。该数组中的第一个 Observable 发出源值,谓词参数对其返回true。第二个 Observable 发出谓词返回 false 的源值。第一个行为类似于 filter,第二个行为 filter 与否定谓词相似。

将一组数字划分为奇数和偶数可观察数

  1. import { of, partition } from 'rxjs';
  2. const observableValues = of(1, 2, 3, 4, 5, 6);
  3. const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);
  4. odds$.subscribe(x => console.log('odds', x));
  5. evens$.subscribe(x => console.log('evens', x));
  6. // Logs:
  7. // odds 1
  8. // odds 3
  9. // odds 5
  10. // evens 2
  11. // evens 4
  12. // evens 6

也可以看看

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号