以设定的时间间隔轮询 Angular Observable<number>
Poll Angular Observable<number> at set intervals
我有一个 observable,我知道它的更新速率约为每秒 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以后用起来很方便...:[=11=]
const refreshRate = 200; // refresh rate in ms
lowFrequencyData$: Observable<number> = highFrequencyData$.pipe(debounceTime(refreshRate));
我有一个 observable,我知道它的更新速率约为每秒 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以后用起来很方便...:[=11=]
const refreshRate = 200; // refresh rate in ms
lowFrequencyData$: Observable<number> = highFrequencyData$.pipe(debounceTime(refreshRate));