Проблема:
Мое приложение работает нормально на первом загружаемом компоненте, и когда я нажимаю, чтобы переключиться на другой компонент, оно создает другую подписку на My DAL.
Код
servers.component. html <- компонент по умолчанию </p>
<div class="row">
<div class="col-md-12">
<app-server-list></app-server-list>
</div>
<router-outlet></router-outlet>
</div>
server-backup.component. html
<div class="row">
<div class="col-md-12">
<app-server-list ></app-server-list>
</div>
</div>
В server-list.component .ts Я хочу обновлять sh данные из БД каждые 5 секунд, поэтому я делаю это:
this.dataStorageService.getServerPerformanceInfo()
this.interval = setInterval(() =>
{
this.dataStorageService.getServerPerformanceInfo()
} , 5000)
Когда я переключаюсь между серверами и резервное копирование серверов, я отписываюсь:
ngOnDestroy()
{
this.subscriptions.forEach(subscription => {
subscription.unsubscribe();
});
clearInterval(this.interval);
}
И, наконец, на моем data-storage-service.ts
getServerPerformanceInfo()
{
this.serverPerfSub = this.http.get<ServerPerformance[]>(DEV + '/getServerPerformance').subscribe
(
(data) => {
this.serversService.setPerformanceInfo(data);
}
)
}
Когда я переключаюсь между моими компонентами, компонент списка серверов уничтожается, создается, но dataStorageService вызовы становятся все более частыми, пока мой метод API не начинает отказывать.
Конечно, это связано с подпиской на dataStorageService, но как мне это очистить?