Если вы хотите просто игнорировать некоторые сообщения, когда они приходят слишком быстро, скорее всего, вы ищете оператор auditTime
:
import { auditTime } from "rxjs/operators";
this.scenarioRunnerService.liveUpdate$.pipe(
auditTime(400)
).subscribe(response => {
this.processLiveUpdates(response.payload);
});
Если в течение указанного времени получено несколько сообщений, оператор auditTime
игнорирует все сообщения, кроме последнего полученного сообщения.
В качестве альтернативы вы можете использовать оператор throttleTime
. Его поведение отличается тем, что оно пропускает первое полученное сообщение и регулирует последующие сообщения, полученные в течение указанного периода времени.
И оператор sampleTime
- еще одна возможность. Снова все по-другому, так как он будет проверять полученные сообщения в указанный период.
Какой оператор вы выберете, зависит от желаемого поведения.