RxJS throttle

2020-10-14 10:40 更新

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

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

參量

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

returns

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

描述

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

油門大理石圖

throttle禁用內(nèi)部計(jì)時(shí)器時(shí),在輸出 Observable 上發(fā)出源 Observable 值;啟用計(jì)時(shí)器時(shí),將忽略源值。最初,計(jì)時(shí)器被禁用。一旦第一個(gè)源值到達(dá),它將被轉(zhuǎn)發(fā)到輸出 Observable,然后通過(guò)調(diào)用durationSelector具有源值的函數(shù)來(lái)啟用計(jì)時(shí)器,該函數(shù)將返回“ duration” Observable。當(dāng) Observable 持續(xù)時(shí)間發(fā)出值或完成時(shí),計(jì)時(shí)器將被禁用,并且此過(guò)程將為下一個(gè)源值重復(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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)