有人可以解释setInterval计数器的工作原理吗?

时间:2019-01-31 16:45:20

标签: javascript google-chrome firefox setinterval clearinterval

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

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

这是clearInterval:

clearInterval(repeat)

现在,在Firefox中,一旦我运行了此位,如果我想知道“ repeat”的值,它将返回间隔运行的时间。但是,在Chrome中,无论它运行了多少次,它总是返回1。除非我对整个过程进行了处理,然后它返回2。它基本上增加了实例,而不是出现间隔。

任何人都可以对此有所了解,它是如何工作的,以及为什么...受到高度赞赏!

1 个答案:

答案 0 :(得分:2)

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

引用MDN

  

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

别指望或依靠它,成为别的东西。