auditTime

function stable

Ignores source values for duration milliseconds, then emits the most recent value from the source Observable, then repeats this process.

auditTime<T>(duration: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction<T>

Parameters

duration

Time to wait before emitting the most recent source value, measured in milliseconds or the time unit determined internally by the optional scheduler.

scheduler

Optional. Default is async.

The SchedulerLike to use for managing the timers that handle the rate-limiting behavior.

Returns

MonoTypeOperatorFunction<T>: A function that returns an Observable that performs rate-limiting of emissions from the source Observable.

Description

When it sees a source value, it ignores that plus the next ones for duration milliseconds, and then it emits the most recent value from the source.

auditTime marble diagram

auditTime is similar to throttleTime, but emits the last value from the silenced time window, instead of the first value. auditTime emits the most recent value from the source Observable on the output Observable as soon as its internal timer becomes disabled, and ignores source values while the timer is enabled. Initially, the timer is disabled. As soon as the first source value arrives, the timer is enabled. After duration milliseconds (or the time unit determined internally by the optional scheduler) has passed, the timer is disabled, then the most recent source value is emitted on the output Observable, and this process repeats for the next source value. Optionally takes a SchedulerLike for managing timers.

Example

Emit clicks at a rate of at most one click per second

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

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

See Also

© 2015–2021 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/auditTime