停止在角度上连续被调用的函数

问题描述 投票:0回答:1

我正在开发一个有角度的应用程序。作为它的一部分,我每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的数据。有人可以帮我吗?

感谢

javascript angular api setinterval
1个回答
5
投票

在调用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);
}
© www.soinside.com 2019 - 2024. All rights reserved.