我有一个服务,它每10秒检查一次数据状态,以更新组件中的标签。只有在组件所在的页面时才需要这样做。该组件类似于以下内容:
@Component({
selector: 'editor-status',
templateUrl: './editorStatus.component.html',
providers: [EditorStatusService]
})
export class EditorStatusComponent implements OnDestroy {
constructor(private service: EditorStatusService){};
public ngOnDestroy(): void {
service.destroy();
}
}
我的服务有以下这种结构:
@Injector()
export class EditorStatusService {
private intervalId: any;
constructor() {
this.intervalId = setInterval(() => {
/* code to update ui */
}, 10000);
}
public destroy(): void {
clearInterval(this.intervalId);
}
}
这种方式提供给组件的服务是否每次实例化组件时都会重新构建?如果我不销毁监听器,那么每次加载并从页面导航离开时,都会创建内存泄漏吗?