【发布时间】:2019-03-05 13:43:33
【问题描述】:
我是 Angular(和编码)的新手,我想知道一旦我在 html 中触发,是否可以在一段时间后(使用 setTimeout)开始向变量添加值,然后停止单击另一个按钮的过程。 这是html:
<div>
<span>
<button (click)="addingNumber(5000)">Start adding Number</button>
</span>
<span>
<button (click)="stopAddingNumber()">Stop Adding Number</button>
</span>
</div>
<div>{{actualNumber}}</div>
这是我正在尝试的 Ts:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-number-add',
templateUrl: './number-add.component.html',
styleUrls: ['./number-add.component.css']
})
export class NumberAdd implements OnInit {
actualNumber = 0;
countActive: boolean;
constructor() { }
ngOnInit() {
}
waitTime(awaitTime: number) {
return new Promise(() => {
setTimeout(() => {
this.actualNumber += 1;
}, awaitTime);
});
}
async addingNumber(time: number) {
this.countActive = true;
while (this.countActive) {
await this.waitTime(time);
}
}
stopAddingNumber() {
this.countActive = false;
}
}
当我尝试这段代码时,它只会打印 1 并在此处“停止”。
【问题讨论】:
标签: javascript angular async-await