【问题标题】:Can someone explain how the setInterval counter works?有人可以解释 setInterval 计数器是如何工作的吗?
【发布时间】:2019-06-25 04:43:15
【问题描述】:

我为 setInterval 创建了一个 var,因此我可以使用 clearInterval 来停止它:

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

这里是 clearInterval:

clearInterval(repeat)

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

任何人都能够对此有所了解,它是如何工作的,以及为什么......非常感谢!

【问题讨论】:

  • 不,repeat 不是计时器触发的次数。它只是一个标识系统中计时器的数字。每个浏览器对定时器标识符的管理方式不同,但目的是一样的。
  • 想一想:如果repeat 是间隔运行的时间量,clearInterval() 将如何使用它来停止运行间隔?
  • 非常感谢,伙计们!

标签: javascript google-chrome firefox setinterval clearinterval


【解决方案1】:

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

引用MDN

返回的 intervalID 是一个数字的非零值,用于标识调用 setInterval() 创建的计时器;可以将此值传递给 WindowOrWorkerGlobalScope.clearInterval() 以取消超时。

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

【讨论】:

    猜你喜欢
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多