codecamp

RxJS audit

在另一个 Observable 确定的持续时间内忽略源值,然后从源 Observable 发出最新值,然后重复此操作处理。

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

参量

durationSelector 功能从源 Observable 接收值,用于计算沉默持续时间,以可观察或承诺的形式返回。

returns

MonoTypeOperatorFunction<T>:一个 Observable,执行以下操作的速率限制 源排放可观察到。

描述

就像 auditTime,但是沉默 持续时间由第二个 Observable 确定。

audit marble diagram

audit与相似 throttle,但从静音中发出最后一个值 时间窗口,而不是第一个值。 audit发出最新值 从源 Observable 到输出 Observable,只要其内部 计时器被禁用,并且在启用计时器时忽略源值。 最初,计时器被禁用。 第一个来源值一到达, 通过使用调用 来启用计时器 durationSelector函数 源值,该值返回“可观察的持续时间”。 持续时间 Observable 发出一个值或完成一个值,禁用该计时器,然后 最近的源值在输出 Observable上发出,并且此过程 重复下一个源值。

以每秒最多一次点击的速度发出点击

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

也可以看看

RxJS zip
RxJS auditTime
温馨提示
下载编程狮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; }