我对 rxjs 运算符有点困惑delay
。
当我使用创建的假 observable 对其进行测试时from
,我只会看到一个初始延迟:
const { from } = Rx;
const { delay, tap } = RxOperators;
from([1, 2, 3, 4]).pipe(
tap(console.log),
delay(1000));
(您可以将此代码段复制并粘贴到rxviz中。)
我在其中放置了一个tap
以确保from
实际将数组项作为单独的值而不是单个数组值发出。
最初的延迟不是我所期望的,但至少文档是这样说的:
[...] 这个操作符时间将源 Observable 移动了以毫秒表示的时间量。值之间的相对时间间隔被保留。
但是,当我使用从事件创建的 observable 对其进行测试时,我会在每个发出的值之前看到一个延迟:
const { fromEvent } = Rx;
const { delay } = RxOperators;
fromEvent(document, 'click')
.pipe(delay(1000))
这里发生了什么?为什么delay
在这两种情况下表现不同?