clearInterval无效,并提高间隔速度

问题描述 投票:0回答:2

我正在制作一个包含计时器的二十一点游戏。如果玩家决定抽出新卡,计时器应重新启动。当我按下绘制按钮时,它会重置,但间隔速度会增加1。

const createCountDown = (isPlayerDrawed = false) => {
  delay = 10;
  let Timer = document.getElementById('timer');
  if (isPlayerDrawed == true) {
    delay = 10;
    clearInterval(timer);
    createCountDown(false);
  } else {
    let timer = setInterval(() => {
      if (delay <= 0) {
        clearInterval(timer);
        stay();
      } else {
        delay--;
        Timer.innerHTML = delay;
      }
    }, 1000)
    console.log(timer)
  }
}

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS81WFEyMS5wbmcifQ==” alt =“在此处输入图像描述”>“ >>

我该如何解决此问题?

我正在制作一个包含计时器的二十一点游戏。如果玩家决定抽出新卡,计时器应重新启动。当我按下绘制按钮时,它会重置,但间隔速度会增加1。const ...

javascript setinterval countdowntimer clearinterval
2个回答
0
投票
const createCountDown = (isPlayerDrawed = false, delay) => {
counter = delay;
let Timer = document.getElementById('timer');
let interval = null
if (isPlayerDrawed === true) {
    clearInterval(interval);
} else {
    interval = setInterval(() => {
        Timer.innerHTML = counter;

        if (counter <= 0) {
            clearInterval(interval);
            stay();
        } else {
            counter--;
        }

    }, 1000)
}

0
投票

您的let timer仅限于else块。其他引用将引用全局变量。

© www.soinside.com 2019 - 2024. All rights reserved.