以<number>设定的时间间隔轮询角度可观察



我有一个可观察到的,我知道它的更新率大约为每秒100个值。我想要的只是以更新率的一小部分轮询它的当前值,比如每秒5次,这样我就可以显示它

highFrequencyData$: Observable<number> = this.myHighFrequencyDataService.highFrequencyData$;
// This update rate is way too high and not what I want:
highFrequencyData$.subscribe( (value: number) => this.displayValue(value) ); 

我对Angular还比较陌生,我觉得有一种优雅的方法可以使用管道和定时器来完成以下操作,但我无法找到正确的语法。我的目标是将其转换为低频Observable,我可以进一步使用,比如:

lowFrequencyData$ : Observable<number>  = highFrequencyData$.pipe( /* Magic happens to pick value at frequency of 5Hz */);

正确的表述方式是什么?

您的代码很简单,只需学习RxJS即可在未来轻松使用…:

const refreshRate = 200; // refresh rate in ms
lowFrequencyData$: Observable<number> = highFrequencyData$.pipe(debounceTime(refreshRate));

最新更新