RxJS throttle

2020-10-14 10:40 更新

從源 Observable 發(fā)出一個值,然后在另一個 Observable 確定的持續(xù)時間內(nèi)忽略后續(xù)源值,然后重復(fù)此過程。

throttle<T>(durationSelector: (value: T) => SubscribableOrPromise<any>, config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction<T>

參量

durationSelector 從源 Observable 接收值的函數(shù),用于計算每個源值的沉默持續(xù)時間,以 Observable 或 Promise 的形式返回。
配置 可選的。默認(rèn)值為defaultThrottleConfig。一個定義leadingtrailing行為的配置對象。默認(rèn)為{ leading: true, trailing: false }

returns

MonoTypeOperatorFunction<T>:一個 Observable,執(zhí)行油門操作以限制源的排放率。

描述

就像throttleTime,但沉默持續(xù)時間由第二個 Observable 決定。

油門大理石圖

throttle禁用內(nèi)部計時器時,在輸出 Observable 上發(fā)出源 Observable 值;啟用計時器時,將忽略源值。最初,計時器被禁用。一旦第一個源值到達(dá),它將被轉(zhuǎn)發(fā)到輸出 Observable,然后通過調(diào)用durationSelector具有源值的函數(shù)來啟用計時器,該函數(shù)將返回“ duration” Observable。當(dāng) Observable 持續(xù)時間發(fā)出值或完成時,計時器將被禁用,并且此過程將為下一個源值重復(fù)。

以每秒最多一次點(diǎn)擊的速度發(fā)出點(diǎn)擊

import { fromEvent } from 'rxjs';
import { throttle } from 'rxjs/operators';


const clicks = fromEvent(document, 'click');
const result = clicks.pipe(throttle(ev => interval(1000)));
result.subscribe(x => console.log(x));

也可以看看

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號