【问题标题】: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;
}
}
}
为了清楚起见,我尽量让代码与您自己的代码相似。