【问题标题】:How to pause a function in typescript?如何暂停打字稿中的功能?
【发布时间】:2019-01-09 00:39:41
【问题描述】:

如何在这个函数中添加一个暂停,让 '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、typescript-sleep 和 async/await-in-ts。 任何帮助/建议将不胜感激。

【问题讨论】:

标签: typescript async-await sleep


【解决方案1】:

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

类似这样的:

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;
    }
  }
}

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

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 2017-12-19
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2023-03-10
    相关资源
    最近更新 更多