RxJS takeWhile

2020-10-14 10:39 更新

只要每個(gè)值滿足給定值,就發(fā)出源 Observable 發(fā)出的值predicate,然后在predicate不滿足要求時(shí)立即完成。

takeWhile<T>(predicate: (value: T, index: number) => boolean, inclusive: boolean = false): MonoTypeOperatorFunction<T>

參量

謂詞 評(píng)估源 Observable 發(fā)出的值并返回布爾值的函數(shù)。也將(從零開始)索引作為第二個(gè)參數(shù)。
Included 可選的。默認(rèn)值為false。當(dāng)設(shè)置為true導(dǎo)致predicate返回的值時(shí), false也會(huì)發(fā)出。

returns

MonoTypeOperatorFunction<T>:一個(gè) Observable,它從源 Observable 發(fā)出值,只要每個(gè)值都滿足定義的條件 predicate,然后完成。

描述

僅在它們通過給定條件時(shí)才從源中獲取值。當(dāng)?shù)谝粋€(gè)值不滿足時(shí),它完成。

大理石圖

takeWhile訂閱并開始鏡像源 Observable。源上發(fā)出的每個(gè)值都被提供給predicate函數(shù),該函數(shù)返回一個(gè)布爾值,表示源值要滿足的條件。輸出 Observable 會(huì)發(fā)出源值,直到predicate 返回false為止,此時(shí)將takeWhile停止鏡像源 Observable 并完成輸出 Observable。

僅當(dāng) clientX 屬性大于 200 時(shí)才發(fā)出點(diǎn)擊事件

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
包括的 可選的。默認(rèn)值為undefined 類型:boolean

returnsMonoTypeOperatorFunction<T> |

也可以看看

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)