如何暂停打字稿中的功能?

How to pause a function in typescript?

如何在此函数中添加暂停,以便 'datasum' 的值每 2 秒更改一次?

i:number; datasum:number; sum:number;
startCalculating(_i,_sum) 
{
 _i=1; _sum=0;
 while(_i<100)
 {
  _sum=_sum+2;
  this.datasum=_sum;
  _i=_i+1;
 }
}

我已经尝试过建议的方法: pausing-in-js, and 。 任何 help/suggestions 将不胜感激。

一个解决方案可能是使用 async/await 模式,在您的 while 循环中,您可以等待一个 Promise 在 2 秒后得到解决。

像这样:

function delay(timeInMillis: number): Promise<void> {
  return new Promise((resolve) => setTimeout(() => resolve(), timeInMillis));
}

class YourClass {
  datasum = 0;

  async startCalculating(): Promise<void> {
    let _i = 0;
    let _sum = 0;
    while (_i < 100) {
      _sum += 2;
      this.datasum = _sum;
      await delay(2000);
      _i += 1;
    }
  }
}

为清楚起见,我尽量使代码与您自己的代码相似。