codecamp

RxJS delay

在给定的超时时间内延迟从源发出项目的时间。 直到给定的日期。

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

参量

延迟 延迟持续时间,以毫秒(a number)或 一个 Date直到其中源项的发射被延迟。
调度器 可选的。 默认值为 async。  该 SchedulerLike用于  管理处理每个项目时移的计时器。

returns

MonoTypeOperatorFunction<T>:一个可观察到的延迟排放源的方法 通过指定的超时或日期可观察到。

描述

时间将每个项目移动指定的数量 毫秒。

delay marble diagram

如果 delay 参数为数字,则此运算符会时移源 可观察到的时间(以毫秒为单位)。 相对的 值之间的时间间隔将保留。

如果 delay 参数为 Date,则此运算符会时移 在给定日期之前可以观察到的执行。

例子

将每次点击延迟一秒钟

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

将所有点击延迟到以后的某个日期

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

也可以看看

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