我在一个页面上有多个定时器,这些定时器都是通过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]);
}发布于 2019-08-13 13:08:37
您可以维护一个数组来保存由ID调用返回的setTimeout,然后在重置时循环该数组:
const timerIds = [];
function newTimer(username){
timerIds.push(setInterval(function() {startTimer()}, 1000));
}当您重置并开始使用新玩家时,您需要清除定时器:
timerIds.forEach(clearInterval);https://stackoverflow.com/questions/57478303
复制相似问题