RxJS takeWhile
只要每个值满足给定值,就发出源 Observable 发出的值predicate
,然后在predicate
不满足要求时立即完成。
takeWhile<T>(predicate: (value: T, index: number) => boolean, inclusive: boolean = false): MonoTypeOperatorFunction
<T>
参量
谓词 | 评估源 Observable 发出的值并返回布尔值的函数。也将(从零开始)索引作为第二个参数。 |
---|---|
Included | 可选的。默认值为false 。当设置为true 导致predicate 返回的值时, false 也会发出。 |
returns
MonoTypeOperatorFunction<T>
:一个 Observable,它从源 Observable 发出值,只要每个值都满足定义的条件 predicate
,然后完成。
描述
仅在它们通过给定条件时才从源中获取值。当第一个值不满足时,它完成。
takeWhile
订阅并开始镜像源 Observable。源上发出的每个值都被提供给predicate
函数,该函数返回一个布尔值,表示源值要满足的条件。输出 Observable 会发出源值,直到predicate
返回false为止,此时将takeWhile
停止镜像源 Observable 并完成输出 Observable。
例
仅当 clientX 属性大于 200 时才发出点击事件
import { fromEvent } from 'rxjs';
import { takeWhile } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(takeWhile(ev => ev.clientX > 200));
result.subscribe(x => console.log(x));
超载
takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>
参量 | 类型 |
---|---|
谓词 | 类型:(value: T, index: number) => value is S |
returnsOperatorFunction<T, S>
takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction<T, S>
参量 | 类型 |
---|---|
谓词 | 类型:(value: T, index: number) => value is S |
包括的 | 类型:false |
returnsOperatorFunction<T, S>
takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction<T>
参量 | 类型 |
---|---|
谓词 | 类型:(value: T, index: number) => boolean |
包括的 | 可选的。默认值为undefined 类型:boolean |
returnsMonoTypeOperatorFunction<T>
|