【发布时间】:2016-09-07 09:38:39
【问题描述】:
我想调用一个函数,该函数可以使用已经按间隔工作(运行函数)的函数内的间隔不断检查时间量。 那就是我所做的:
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() 函数,直到浏览器崩溃。 我试着这样做
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.
【问题讨论】:
-
setInterval- 多次调用回调,setTimeout调用一次回调 - 不确定是否有帮助 -
你在哪里打电话给
clearInterval(interval)?你能把它包含在你的完整代码中吗? -
我猜你只想执行
log给定的次数(在提示中给出),然后停止记录,对吗?还是只在提示的时间过去后一次? -
每次给定时间保持记录,它不应该停止,但它会在时间上进行第一次登录,但在此之后,日志功能会越来越快地被调用,直到浏览器崩溃。 @Teemu
-
看起来
case "a"会经常通过onrunning。当它每 5 毫秒运行一次时,您将很快获得大量新的日志间隔。此外,我认为 Jaromanda X 在他们的评论中(至少部分)解决了您的问题。
标签: javascript switch-statement settimeout setinterval clearinterval