javascript - 有人可以解释 setInterval 计数器如何工作吗?

标签 javascript google-chrome firefox setinterval clearinterval

我为 setInterval 创建了一个 var,这样我就可以用clearInterval 来停止它:

var repeat = setInterval(sayHello, 2000); 
function sayHello() { 
    alert("Hello"); 
}

这里是clearInterval:

clearInterval(repeat)

现在,在 Firefox 中,一旦我运行了这一点,如果我想知道“repeat”的值,它会返回间隔运行的时间量。然而,在 Chrome 中,无论运行多少次,它总是返回 1。除非我重新执行整个过程,否则它会返回 2。它基本上是增加实例而不是间隔出现。

任何人都能够阐明这一点,它是如何工作的,以及为什么......非常感谢!

最佳答案

所保证的是setInterval将返回一个句柄,然后可以由clearInterval使用。除此之外,该句柄是什么以及如何使用它完全取决于浏览器。即使它似乎在某一特定浏览器中提供了一些信息,也不应该以任何方式依赖它,因为它可能会发生变化。

引用MDN :

The returned intervalID is a numeric, non-zero value which identifies the timer created by the call to setInterval(); this value can be passed to WindowOrWorkerGlobalScope.clearInterval() to cancel the timeout.

不要期望或依赖它成为其他任何东西。

关于javascript - 有人可以解释 setInterval 计数器如何工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54465370/

相关文章:

php - 更改点击事件上的php变量

javascript - Chrome 中意外的 Javascript for 循环行为

javascript - 如何在单页应用程序中管理与 IndexedDb 的连接

javascript - Firefox 单选按钮焦点样式

html - 为什么 Chrome 在页面缩放时不放大 div 的宽度/高度?

java - Selenium java 文件下载不适用于 Chrome 版本 75

javascript - Chrome 扩展 : Stack trace: TypeError: Cannot read property 'selectedtext' of undefined

jQuery循环: fading white text becomes "green" in Windows/Firefox/Cleartype Enabled

php - 在 Firefox(和其他浏览器)中以 XML 格式查看 PHP 文件输出

javascript - 在 URL 重写期间阻止 IE/FF 处理 anchor ?