暂停后计数器从0开始

时间:2018-12-07 17:44:29

标签: typescript

试图创建递增计时器,但在暂停计数器后从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);
  }

}

1 个答案:

答案 0 :(得分:0)

您可以将其移至startTimer()函数外部的变量下方,这应该可以工作。

let seconds=0;
let minutes=0;
let hours=0;

为什么要这样做?因此,无论何时调用startTimer()函数,变量secondsminuteshours都会被设置为0。 将这些变量移到该函数之外后,它应该起作用。再说一遍,如果您想将计时器/计数器重置为0,则可以创建类似resetTimer()的新函数,在其中可以设置诸如secondsminutes和{{ 1}}到hours

相关问题