我为 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/