Используйте rxjs
таймер для вызова API-запроса при запуске, а затем каждые 10 с.
Лучше всего это сделать, используя rxjs для разделения и завоевания.
Во-первых, импортируйте следующее:
import { timer, Observable, Subject } from 'rxjs';
import { switchMap, takeUntil, catchError } from 'rxjs/operators';
Затем добавьте свойство для обработки запроса к API:
private fetchData$: Observable<string> = this.myservice.checkdata();
Затем добавьте свойство для обработки времени:
private refreshInterval$: Observable<string> = timer(0, 1000)
.pipe(
// This kills the request if the user closes the component
takeUntil(this.killTrigger),
// switchMap cancels the last request, if no response have been received since last tick
switchMap(() => this.fetchData$),
// catchError handles http throws
catchError(error => of('Error'))
);
Наконец, запустить команду kill, если компонент убит:
ngOnDestroy(){
this.killTrigger.next();
}
Вот демо StackBlitz .