delay

function stable

Delays the emission of items from the source Observable by a given timeout or until a given Date.

delay<T>(due: number | Date, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction<T>

Parameters

due

The delay duration in milliseconds (a number) or a Date until which the emission of the source items is delayed.

scheduler

Optional. Default is asyncScheduler.

The SchedulerLike to use for managing the timers that handle the time-shift for each item.

Returns

MonoTypeOperatorFunction<T>: A function that returns an Observable that delays the emissions of the source Observable by the specified timeout or Date.

Description

Time shifts each item by some specified amount of milliseconds.

delay marble diagram

If the delay argument is a Number, this operator time shifts the source Observable by that amount of time expressed in milliseconds. The relative time intervals between the values are preserved.

If the delay argument is a Date, this operator time shifts the start of the Observable execution until the given date occurs.

Examples

Delay each click by one second

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

const clicks = fromEvent(document, 'click');
const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second
delayedClicks.subscribe(x => console.log(x));

Delay all clicks until a future date happens

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

const clicks = fromEvent(document, 'click');
const date = new Date('March 15, 2050 12:00:00'); // in the future
const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date
delayedClicks.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/delay