首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过interval JS调用的函数中的interval调用函数

通过interval JS调用的函数中的interval调用函数
EN

Stack Overflow用户
提问于 2016-09-07 17:38:39
回答 1查看 136关注 0票数 0

我想调用一个函数,这个函数可以使用一个间隔不断地检查一段时间,这个函数已经在一个间隔内工作(正在运行函数)。我所做的就是:

代码语言:javascript
复制
 var interval;
 var time = prompt("Insert amount of time in seconds");
 function log ()
 {
 console.log ("log() called.");
 }
 function onrunning ()
 {
  interval = setInterval(log,time*1000);
}
gameloop = setInterval(onrunning,5);//This interval must not cleared

第一个时间段运行良好,但在这之后,它会越来越快地调用log()函数,直到浏览器崩溃。我试着这么做

代码语言:javascript
复制
var interval;
var time = prompt("Insert amount of time in seconds");
function log ()
{
console.log ("log() called.");
}
function onrunning ()
 {
  interval = setInterval(log,time*1000);
 }
 gameloop = setInterval(onrunning,5);
 clearInterval(interval); //tried this but no differece.
EN

回答 1

Stack Overflow用户

发布于 2016-09-07 18:17:27

您在错误的位置清除间隔。

在您的代码中,您试图在创建它之前将其清除(所以这基本上是一个无操作)。

您想要在创建并执行后将其清除:

代码语言:javascript
复制
function log ()
{
    console.log ("log() called.");
    clearInterval(interval);
}

您还应该注意到,由于您的onrunning也是作为"interval“回调触发的,因此您将在每个回调执行帧上创建新的日志间隔。如果您也想清除此间隔,只需复制上述相同的逻辑,但在onrunning回调中。

我假设您只想在一段时间后触发一次"log“回调(可能也是”onrunning“回调)。在这种情况下,您应该使用setTimeout而不是setInterval

Jaromanda X in this comment已经指出了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39366380

复制
相关文章

相似问题

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