У меня есть источник событий, который отправляет события с частотой 50 Гц.
Я хотел бы подписаться на этот источник с асинхронным методом. Код выглядит следующим образом:
this.emitter = fromEventPattern(this.addHandler, this.removeHandler, (err, char) => [err, char]);
this.rxSubscription = this.emitter.subscribe(this.handleUpdatedValuesComingFromSensor);
и
handleUpdatedValuesComingFromSensor = async (arr: any[]): Promise<void> => {
...
await someMethodAsync();
...
}
Возможно, я ошибаюсь, но у меня сложилось впечатление, что ожидание там заставляет эмиттер немедленно вызывать onNext (), потому что я вышел из метода.
Это очень сложно отладить с помощью консольных вызовов из-за частоты событий.
Я прав или нет?
Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ 1 :
Я использую таргетинг машинописи ES2015, поэтому для async / await создается конечный автомат.
Если я прав, как я могу убедиться, что звонки не перекрываются? Мне нужно вычислить средние значения, которые я получаю.