试图创建递增计时器,但在暂停计数器后从0开始。是什么原因引起的?
这是打字稿代码。是打字稿的新手,因此可以提供任何帮助。
export class TrackPage {
newTime;
interval;
constructor(public navCtrl: NavController, public navParams: NavParams, private walkingProvider: WalkingProvider) {
console.log(navParams.get("myVal"));
this.newTime= walkingProvider.getNewTime();
if (navParams.get("myVal") == "true") {
this.startTimer();
}
}
startTimer() {
let seconds=0;
let minutes=0;
let hours=0;
this.interval = setInterval(() => {
seconds++;
if (seconds == 60) {
seconds = 0;
minutes++;
if (minutes == 60) {
minutes = 0;
hours++;
}
}
this.newTime= hours == 0 ? this.pad2(minutes) + ":" + this.pad2(seconds) : this.pad2(hours) + ":" + this.pad2(minutes) + ":" + this.pad2(seconds);
}, 1000)
}
pauseTimer() {
clearInterval(this.interval);
this.walkingProvider.setNewTime(this.newTime);
}
}
答案 0 :(得分:0)
您可以将其移至startTimer()
函数外部的变量下方,这应该可以工作。
let seconds=0;
let minutes=0;
let hours=0;
为什么要这样做?因此,无论何时调用startTimer()
函数,变量seconds
,minutes
和hours
都会被设置为0
。
将这些变量移到该函数之外后,它应该起作用。再说一遍,如果您想将计时器/计数器重置为0
,则可以创建类似resetTimer()
的新函数,在其中可以设置诸如seconds
,minutes
和{{ 1}}到hours
。