Javascript 使用clearInterval清除计时器不工作

Javascript 使用clearInterval清除计时器不工作,javascript,timer,Javascript,Timer,我把我的作品放在这里: 如何复制: 点击地图上的绿色别针选择一个车站 填写两个输入name/lastname 在画布上签名 你应该看到一个计时器从20:00分开始 如果您取消(取消按钮)计时器 然后退出画布,计时器仍在运行,未重置 我的计时器在文件/js/timer.js中 我不明白为什么,因为我在调用按钮第59行时清除了我的this.setTimer,我使用了timer.cancel方法来清除间隔并清除会话存储。 但是我试着调试一些奇怪的东西,this.setTimer似乎等于10,然后每

我把我的作品放在这里:

如何复制:

  • 点击地图上的绿色别针选择一个车站
  • 填写两个输入name/lastname
  • 在画布上签名

  • 你应该看到一个计时器从20:00分开始

  • 如果您取消(取消按钮)计时器
  • 然后退出画布,计时器仍在运行,未重置
我的计时器在文件/js/timer.js中 我不明白为什么,因为我在调用按钮第59行时清除了我的
this.setTimer
,我使用了
timer.cancel
方法来清除间隔并清除会话存储。 但是我试着调试一些奇怪的东西,
this.setTimer
似乎等于10,然后每次我取消,
this.setTimer
增加1

我错过什么了吗?正确的行为应该是当我点击“取消”(cancel)时,计时器重置为20:00分钟

这是我的取消功能

cancel = () => {
    this.isPlaying = false;
    clearInterval(this.setTimer);
    sessionStorage.clear();
    console.log(this.setTimer);
    canvas.clear();
    this.timer.innerHTML = 'Votre réservation a été annulée.'
    document.getElementById('reservation-content').classList.remove('hidden');
    document.getElementById('cancel-btn').className = 'hidden';
    document.getElementById('validation-btn').setAttribute('disabled', null)
}
减去1000时存储旧值

清除间隔后,需要再次重置
此.delta
值。 尝试添加

this.delta = (this.endDate - this.now);
之后

在取消方法中


希望我能回答你的问题。

演示如何清除计时器,示例还不够。非常感谢,我完全忘记了!
this.delta = (this.endDate - this.now);
clearInterval(this.setTimer);