Проблема в том, что вы используете неправильный оператор для вашего варианта использования. Насколько я понимаю ваше объяснение, которое вы хотите отправить через первый звонок, и прекратите любые дальнейшие звонки на ваш Сервер на некоторое количество мс. Но throttleTime(sec)
просто устанавливает таймер на действие и выполняет его sec
мс позже. Таким образом, ваш сервер все еще будет рассылаться спамом, всего через несколько мс.
Ваш случай кричит для меня debounceTime()
. debounceTime document
Это позволяет обрабатывать любые дальнейшие данные, которые будут передаваться через Observable в течение указанного времени после выдачи значения.
Поэтому ваш код должен быть в порядке, если выиспользуйте что-то вроде:
const calendarPeriodSubscription =
this.calendarPeriodObservable$.pipe(debounceTime(750)).subscribe((calendar: x) => {
// Stuff with returned data
});