Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript clearInterval不';t工作并提高间歇速度_Javascript_Setinterval_Countdowntimer_Clearinterval - Fatal编程技术网

Javascript clearInterval不';t工作并提高间歇速度

Javascript clearInterval不';t工作并提高间歇速度,javascript,setinterval,countdowntimer,clearinterval,Javascript,Setinterval,Countdowntimer,Clearinterval,我正在制作一个包含计时器的21点游戏。若玩家决定抽一张新牌,计时器应该重新启动。当我按下draw按钮时,它会重置,但会将间隔速度增加1 const createCountDown = (isPlayerDrawed = false) => { delay = 10; let Timer = document.getElementById('timer'); if (isPlayerDrawed == true) { delay = 10; clearInterv

我正在制作一个包含计时器的21点游戏。若玩家决定抽一张新牌,计时器应该重新启动。当我按下draw按钮时,它会重置,但会将间隔速度增加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)
  }
}
const createCountDown=(isPlayerDrawed=false)=>{
延迟=10;
让Timer=document.getElementById('Timer');
如果(isPlayerDrawed==true){
延迟=10;
清除间隔(计时器);
创建倒计时(假);
}否则{
let timer=setInterval(()=>{
如果(延迟
const createCountDown=(isPlayerDrawed=false,延迟)=>{
计数器=延迟;
让Timer=document.getElementById('Timer');
设间隔为空
如果(isPlayerDrawed==真){
间隔时间;
}否则{
间隔=设置间隔(()=>{
Timer.innerHTML=计数器;

if(counterYour
let timer
仅作用于
else
块。其他引用将引用全局变量

以下是如何使其工作:

let Timer=document.getElementById('Timer');
const stay=()=>Timer.textContent=“计时器已过期!”;
常量createCountDown=(函数(){
让延时,定时器;
函数重置(){
延迟=10;
清除间隔(计时器);
定时器=0;
Timer.textContent=“”;
}
重置();
返回函数(){
重置();
Timer.textContent=延迟;
计时器=设置间隔(()=>{

if(延迟)第一个clearInterval(计时器)可能不起作用,因为计时器的范围被限制在使用“let timer”定义的范围内。您可能应该在第一个“if”之前定义计时器,所以它在两个clearInterval调用的范围内。感谢您的回答,如果没有改变情况,请在first之前定义timer。提供一个工作代码片段会很有帮助
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)
}