【发布时间】:2019-06-14 18:58:26
【问题描述】:
我正在使用以下方法在我的应用中显示时间?
constructor(private datePipe: DatePipe) {}
ngOnInit() {
this.getTime();
this.date = this.datePipe.transform(new Date(), "dd/MM/yyyy");
}
getTime() {
setInterval(() => {
this.time = this.datePipe.transform(new Date(), "HH:mm:ss");
this.getTime();
}, 1000);
}
这段代码运行良好,但一段时间后应用程序崩溃了。 有没有其他方法可以在 angular4/5/6 中显示时间?
【问题讨论】:
-
setInterval每次调用时都会产生一个额外的并行间隔,为什么getTime会递归调用自身?另外你为什么不把管道放在模板中,然后就做this.time = new Date();? -
将尝试更新
-
[性能] 这是在屏幕上显示时钟的错误方式。每个时间间隔完成 1000 毫秒 Angular 事件侦听器被触发。从 @angular/core 尝试 ngZone 并在其中运行 runOutsideAngular 方法