RxJS audit

2020-10-14 09:46 更新

在另一個(gè) Observable 確定的持續(xù)時(shí)間內(nèi)忽略源值,然后從源 Observable 發(fā)出最新值,然后重復(fù)此操作處理。

audit<T>(durationSelector: (value: T) => SubscribableOrPromise<any>): MonoTypeOperatorFunction<T>

參量

durationSelector 功能從源 Observable 接收值,用于計(jì)算沉默持續(xù)時(shí)間,以可觀察或承諾的形式返回。

returns

MonoTypeOperatorFunction<T>:一個(gè) Observable,執(zhí)行以下操作的速率限制 源排放可觀察到。

描述

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

audit marble diagram

audit與相似 throttle,但從靜音中發(fā)出最后一個(gè)值 時(shí)間窗口,而不是第一個(gè)值。 audit發(fā)出最新值 從源 Observable 到輸出 Observable,只要其內(nèi)部 計(jì)時(shí)器被禁用,并且在啟用計(jì)時(shí)器時(shí)忽略源值。 最初,計(jì)時(shí)器被禁用。 第一個(gè)來(lái)源值一到達(dá), 通過(guò)使用調(diào)用 來(lái)啟用計(jì)時(shí)器 durationSelector函數(shù) 源值,該值返回“可觀察的持續(xù)時(shí)間”。 持續(xù)時(shí)間 Observable 發(fā)出一個(gè)值或完成一個(gè)值,禁用該計(jì)時(shí)器,然后 最近的源值在輸出 Observable上發(fā)出,并且此過(guò)程 重復(fù)下一個(gè)源值。

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

import { fromEvent, interval } from 'rxjs';
import { audit } from 'rxjs/operators'


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

也可以看看

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)