codecamp

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> |

也可以看看

RxJS takeUntil
RxJS tap
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

RxJS operators

RxJS fetch

RxJS testing

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }