javascript setInterval使console.log加倍
我在一个脚本中使用了一个自调用函数,这个脚本是我从一个Chrome扩展中调用的 我每30秒有一个简单的javascript setInterval使console.log加倍,javascript,Javascript,我在一个脚本中使用了一个自调用函数,这个脚本是我从一个Chrome扩展中调用的 我每30秒有一个简单的setInval。如果我的问题是每30秒将console.log翻一番,而不是只翻一次日志 因此,当页面加载时,它会打印一次。然后30秒后,它不再打印一个,而是打印两个日志。然后是4、8、16次等等 很奇怪 (function check() { console.log("Exists!"); return setInterval(check, 30000
setInval
。如果我的问题是每30秒将console.log
翻一番,而不是只翻一次日志
因此,当页面加载时,它会打印一次。然后30秒后,它不再打印一个,而是打印两个日志。然后是4、8、16次等等
很奇怪
(function check() {
console.log("Exists!");
return setInterval(check, 30000);
})();
因为您在函数中设置了间隔,所以它只记录一次,但每次都会重新记录值。间隔持续存在,因此间隔加起来。
setInterval
设置一个间隔-它将在每个间隔调用回调。如果两次调用setInterval
,将定期运行两次回调。如果您有一个递归调用自身的setInterval
,那么最终将得到4个、8个、16个等间隔
请删除递归调用:
setInterval(() => {
console.log("Exists!");
}, 30000);
或者改用setTimeout
:
(function check() {
console.log("Exists!");
return setTimeout(check, 30000);
})();