停止在角度连续调用函数

cvg*_*cvg 0 javascript api setinterval angular

我正在开发一个有角度的应用程序。作为它的一部分,我每10秒钟调用一次函数,该函数进行一次API调用。

我的功能看起来像

  getData(ahu) {
    console.log('In get data function')
    console.log(ahu)
    setInterval(() => {
      this.getDataRealTime(ahu);
    }, 10000);
  }
Run Code Online (Sandbox Code Playgroud)
<button mat-flat-button (click)="getData(L1)">L1</button>
<button mat-flat-button (click)="getData(L2)">L2</button>

Run Code Online (Sandbox Code Playgroud)

因此,当我单击“ L1”按钮时,数据每10秒就会持续发送L1。现在,当我单击L2时,L2的数据到来,但是来自L1的数据没有停止。我只需要L1的数据。有人可以帮我弄这个吗?

谢谢

tri*_*cot 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);
}
Run Code Online (Sandbox Code Playgroud)