【发布时间】:2018-08-21 22:30:43
【问题描述】:
我有一个每隔 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);
}
}
是否在每次实例化组件时都以这种方式为组件提供服务?如果我不销毁侦听器,我会在每次加载此页面然后导航离开时创建内存泄漏吗?
【问题讨论】:
标签: angular