倒计时方法不准
发布于 6 年前 作者 guiying82 17217 次浏览 来自 问答

let tm1 = setInterval(() => {

//   let scnd = this.data.countdown2;

//   if (!this.data.isCountdown) {

//     clearInterval(tm1);

//   }

//   // 倒计时结束

//   if (scnd == 0) {

//     this.setData({

//       isCountdown: false

//     });

//     clearInterval(tm1);

//     this._gameOver();

//     return;

//   }

//   console.log(scnd)

//   this.setData({

//     countdown2: scnd - 1,

//   });

// }, 1000);

var time = setTimeout(function () {

if (self.data.countdown2>0){

self.countdownTimer()

self.setData({

countdown2: self.data.countdown2-1,

});

console.log(‘倒计时’ + self.data.countdown2)

} else if(self.data.countdown2 == -20){

clearTimeout(time)

}else{

self.setData({

isCountdown: false,

});

self._gameOver()

}

}, 1000);

我分别使用了2个倒计时方法,但都有问题。

问题是这样的,我的需求是分享完后,给目标重新进行倒计时,这时候倒计时会加速,但在模拟器上没有任何问题。

问题出现在真机,我猜测是线程上的原因,但执行只执行一次,也就是当前的倒计时在执行。

请问各位分享完后,重新执行倒计时会不会这样时间不准确呢?

1 回复

我的问题与此类似,就是clearInterval()并不能删除cycle timer啊。。还是在运行

回到顶部