我正在开发一个有角度的应用程序。作为它的一部分,我每10秒调用一次函数,该函数会进行一次API调用。
我的功能看起来像
getData(ahu) {
console.log('In get data function')
console.log(ahu)
setInterval(() => {
this.getDataRealTime(ahu);
}, 10000);
}
<button mat-flat-button (click)="getData(L1)">L1</button>
<button mat-flat-button (click)="getData(L2)">L2</button>
因此,当我单击L1按钮时,数据每10秒就会持续发送L1。现在,当我单击L2时,L2的数据到来,但是来自L1的数据没有停止。我只需要L1的数据。有人可以帮我吗?
谢谢
答案 0 :(得分:6)
在致电clearInterval
之前,使用setInterval
停止上一个:
var intervalId;
function getData(ahu) {
console.log('In get data function')
console.log(ahu)
clearInterval(intervalId); // use either global or this.intervalId
intervalId = setInterval(() => { // same here.
this.getDataRealTime(ahu);
}, 10000);
}
答案 1 :(得分:0)
当您看到这种情况时,就意味着您正在更改模型,以使Angular必须重新运行摘要并再次启动手表。在您的特定情况下,您正在调用一个更新计数器的函数,该函数显示在页面上。当计数器值更改时,它将再次运行摘要,该摘要将调用更新计数器的函数,等等。