首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何清除所有非数组间隔

如何清除所有非数组间隔
EN

Stack Overflow用户
提问于 2019-08-13 13:02:39
回答 1查看 49关注 0票数 1

我在一个页面上有多个定时器,这些定时器都是通过ajax更新启动的。每个间隔都有自己的名称分配给玩家的用户名。当游戏结束时,我想超越所有的定时表:

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

代码语言:javascript
复制
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?我知道如果它们是数组,我可以执行以下操作,但我想找到一种方法来获取窗口中所有具有不同名称的计时器的集合。

代码语言:javascript
复制
for (i = 0; i < interValArray.length; i++) {
    clearInterval(interValArray[i]);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-13 13:08:37

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

代码语言:javascript
复制
const timerIds = [];

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

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

代码语言:javascript
复制
timerIds.forEach(clearInterval);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57478303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档