我想知道setInterval
函数是如何工作的。
首先:我有一个简单的例子(Live demo)
还有下面的代码。
HTML:
<div id="elem"></div>
<div id="count"></div>
<div id="Timer"></div>
使用Javascript:
var s = 10;
var count = 0;
if (s == 20) alert("S= 20");
var timer = setInterval(function () {
if (count < 50) {
count++;
document.getElementById('count').innerHTML = "Counter: " + count;
}
else {
clearInterval(timer);
document.getElementById('count').innerHTML = "Counter: End Of Count";
}
}, 50);
s = 20;
document.getElementById('elem').innerHTML = "variable 's': " + s;
document.getElementById('Timer').innerHTML = "Timer value: " + timer;
if (s == 20) alert("S= 20");
我想要的就是它的功能如何 实现函数代码后,返回到首页代码的开头,或者再使用clearInterval函数返回实现函数代码。
有人请帮助我。
答案 0 :(得分:0)
setInterval一直重复调用封闭的函数,直到调用clearinterval。延迟可以在1000秒= 1秒内给出,因为你给出了一个小的延迟50,这个函数会连续快速连续调用,直到达到50极限
答案 1 :(得分:0)
在您的代码中,您要向setTimeout
提供匿名函数。
提供给setInterval
的匿名函数称为异步。在当前函数完成之前,匿名函数无法第一次运行。对setInterval(function() {...})
的调用是注册您的匿名函数,每50ms执行一次; 不立即执行。
您的程序流程如下:
set initial variables
check if s == 20
register (not execute) the anonymous function with setInterval
set s = 20
print results
check if s == 20
end of your code blcok
...
50ms later, the first call to your anonymous setTimeout function finally happens
Repeatedly call the anonymous function every 50ms
要点:如果在匿名函数完成后需要执行某些操作,请将这些操作放在匿名函数本身中。在您的代码中,我怀疑您想要在setTimeout
调用之后出现一些行,并将它们放在匿名函数的else
块中。