如何清除所有非数组区间
How to clear all non-array intervals
我在单个页面上有多个计时器,它们由 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?我知道如果它们是数组,我可以执行以下操作,但我想找到一种方法来收集 window.
中具有不同名称的所有计时器
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);
我在单个页面上有多个计时器,它们由 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?我知道如果它们是数组,我可以执行以下操作,但我想找到一种方法来收集 window.
中具有不同名称的所有计时器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);