Я использую таблицу материалов на странице и хочу, чтобы источник данных таблицы обновлялся каждые 5 секунд, чтобы любое изменение значений отражалось в таблице. Вот что я сделал сейчас:
everyFiveSeconds: Observable<number> = timer(0, 5000);
ngOnInit() {
this.everyFiveSeconds.subscribe(() => {
this.getComponents();
});
getComponents()
отправляет запрос на получение и разбивает результат на страницы в таблице материалов. Однако проблема в том, что как только я загружаю эту страницу изначально, запрос на получение выполняется каждые 5 секунд. Но приложение продолжает отправлять запрос, даже если я перехожу на другую страницу. Если я повторно посещаю страницу, запрос будет отправляться каждые 2,5 секунды, и частота запросов будет увеличиваться, если я повторю его.
Как я могу изменить свой код, чтобы этот запрос на получение отправлялся только тогда, когда я сижу в эту страницу компонента, а также убедитесь, что если я еще раз посещу эту страницу, несколько таймеров не будут созданы?