我有一个可观察的流,它发出一个数字序列。每个发出的值都需要进行大量的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的延迟为所有发出的值添加前缀。因此,在上面的示例中,直到250ms之后才发出值 14 。问题在于值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
我想不出更好的方法来解释它。