gpt4 book ai didi

javascript - 如何清除所有非数组区间

转载 作者:行者123 更新时间:2023-11-30 19:21:04 25 4
gpt4 key购买 nike

我在单个页面上有多个计时器,它们由 ajax 更新启动。每个间隔都有自己的名称分配给玩家的用户名。我想在游戏结束时排在所有计时器的前面:

这是创建间隔的方式:findNewPlayer() 在游戏中的某些事件上被调用:

function findNewPlayer(){
$.ajax({
url:"check.php",
success:function(data){newTimer(data)}
})
}

function newTimer(username){
var username=setInterval(function() {startTimer()}, 1000);
}

function startTimer(){
//blah blah
}

现在我想停止所有计时器并重新开始当前玩家的游戏。如何对一系列未在数组中生成的用户名使用 clearInterval?我知道如果它们是数组,我可以执行以下操作,但我想找到一种方法来收集窗口中具有不同名称的所有计时器。

for (i = 0; i < interValArray.length; i++) {
clearInterval(interValArray[i]);
}

最佳答案

您可以维护一个数组来保存 setTimeout 调用返回的 ID,然后在重置时遍历该数组:

const timerIds = [];

function newTimer(username){
timerIds.push(setInterval(function() {startTimer()}, 1000));
}

当您重置并开始新玩家时,您需要清除计时器:

timerIds.forEach(clearInterval);

关于javascript - 如何清除所有非数组区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57478303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com