我有一个可观测的流,它发出一系列的数字。每个发出的值都需要大量的UI更新来重新定位组件。
所以我一直在用
sampleTime()
操作员将排放值调节为周期性的间隔,这非常有效。
例如
observable.pipe(sampleTime(250)).subscribe(value => console.log(value));
// outputs (periods are delays)
...10...11...12......................14...15...16
这在将UI的更新限制为较慢的更新间隔方面非常有效。
我遇到了这样的问题
sampleTime(250)
将以250ms延迟作为所有发出值的前缀。在上面的例子中
14
直到250毫秒后才会释放。问题是有一个
长时间延迟
在值14之前。
因此,我需要一个可观察的流,它使用sampleTime()将值限制250ms,但我不希望在空闲期后的第一个值有250ms的初始延迟。
例如
// currently
...10...11...12......................14...15...16
^^^ remove these dots ^^^ remove these dots
// what I really want
10...11...12...................14...15...16
我想不出更好的解释方法了。