在将此函数放入变量中以便能够使用clearInterval()
之后,为什么不调用此函数就可以工作
let time = 0;
var timer = setInterval(()=>{
window.console.log(`Time passed: ${time}`);
time = time+1;
if(time>5){
clearInterval(timer);
}
}, 1000);
通常,当我们将函数放入变量中时,为了触发它,我们应该调用它。在此示例中,我认为它应该像这样工作:
timer();
但是它无需调用就可以工作。
谢谢。
答案 0 :(得分:2)
如果您实际上将一个函数放在timer
变量中,那么它会按您预期的那样工作,但事实并非如此。您正在调用setInterval
函数并将其返回值存储到timer
变量中。
为了使其按预期运行,您需要将其放入另一个这样的函数中:
let time = 0;
var timer = function() {
return setInterval(()=>{
window.console.log(`Time passed: ${time}`);
time = time+1;
if(time>5){
clearInterval(timer);
}
}, 1000);
}
现在,调用timer()
将像您期望的那样调用计时器。
答案 1 :(得分:0)
The clearInterval() function in javascript clears the interval which has been set by setInterval() function before that.
- setInterval() function takes two arguments first one was the function that to be executed and the second argument was time (in ms).
- setInterval() executes the passed function for the given time interval. The number id value returned by setInterval() function is stored in a variable and it’s passed into the clearInterval() function to clear the interval.
let time = 0;
let timer = function() {
return setInterval(()=>{
window.console.log(`Time passed: ${time}`);
time = time+1;
if(time>5){
clearInterval(timer);
}
}, 1000);
}
答案 2 :(得分:0)
您需要将setInterval包装到一个函数中。
$routeprovider