Javascript clearInterval不';t工作并提高间歇速度
我正在制作一个包含计时器的21点游戏。若玩家决定抽一张新牌,计时器应该重新启动。当我按下draw按钮时,它会重置,但会将间隔速度增加1Javascript 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
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(counterYourlet 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)
}