javascript setInterval使console.log加倍

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

我在一个脚本中使用了一个自调用函数,这个脚本是我从一个Chrome扩展中调用的

我每30秒有一个简单的
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); 
})();