【发布时间】:2023-03-26 11:31:01
【问题描述】:
我是 rxjs 的新手,正在和他们一起玩。所以这是每秒发出值的代码。由于它通过设置为 10 秒的延迟运算符,我希望每 11 秒输出一次控制台,
import { of,interval } from 'rxjs';
import { map,delay,timeInterval } from 'rxjs/operators';
interval(1000)
.pipe(delay(10000))
.pipe(timeInterval())
.subscribe(val=>{
console.log(val);
});
第一次是这样。之后,它开始每秒而不是 11 秒来安慰输出。这是怎么发生的?这是输出供您参考。
TimeInterval {value: 0, interval: 11004}
TimeInterval {value: 1, interval: 997}
TimeInterval {value: 2, interval: 1000}
TimeInterval {value: 3, interval: 1003}
TimeInterval {value: 4, interval: 997}
TimeInterval {value: 5, interval: 1000}
...
【问题讨论】:
-
假设您有一堆保龄球,并且您在建筑物的顶部。你每秒都会从阳台上掉一个
interval。你足够高,他们需要十秒钟才能击中地面pipe(delay(10000)).保龄球击中地面之间的间隔TimeInterval仍然是一秒。 -
@Tanner 你应该把你的评论放在一个答案中,我觉得你应该得到清晰简洁的解释:)
-
delay
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. -
@fridoo 太棒了!只需将其作为答案,我很乐意接受
标签: javascript rxjs