diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/rxjs/src/internal/operators/delay.ts | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/rxjs/src/internal/operators/delay.ts')
| -rw-r--r-- | node_modules/rxjs/src/internal/operators/delay.ts | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/operators/delay.ts b/node_modules/rxjs/src/internal/operators/delay.ts new file mode 100644 index 0000000..47fae49 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/delay.ts @@ -0,0 +1,65 @@ +import { asyncScheduler } from '../scheduler/async'; +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +import { delayWhen } from './delayWhen'; +import { timer } from '../observable/timer'; + +/** + * Delays the emission of items from the source Observable by a given timeout or + * until a given Date. + * + * <span class="informal">Time shifts each item by some specified amount of + * milliseconds.</span> + * + *  + * + * 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 + * + * ```ts + * import { fromEvent, delay } from 'rxjs'; + * + * 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 + * + * ```ts + * import { fromEvent, delay } from 'rxjs'; + * + * 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 {@link delayWhen} + * @see {@link throttle} + * @see {@link throttleTime} + * @see {@link debounce} + * @see {@link debounceTime} + * @see {@link sample} + * @see {@link sampleTime} + * @see {@link audit} + * @see {@link auditTime} + * + * @param due The delay duration in milliseconds (a `number`) or a `Date` until + * which the emission of the source items is delayed. + * @param scheduler The {@link SchedulerLike} to use for managing the timers + * that handle the time-shift for each item. + * @return A function that returns an Observable that delays the emissions of + * the source Observable by the specified timeout or Date. + */ +export function delay<T>(due: number | Date, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction<T> { + const duration = timer(due, scheduler); + return delayWhen(() => duration); +} |
