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