我在理解setInterval
和clearInterval
在JavaScript中的工作方式时遇到了问题。
我已经阅读了关于这两个功能的不同文章,但我仍然感到困惑。
鉴于JavaScript是single thread
,当我们调用test=setInterval(function(){}, t)
时,我们将安排我们的函数每t
毫秒执行一次。除非我们clearInterval(test)
。
clearInterval
我们cancle
已经在JavaScript队列中的setInterval
?setInterval
多次但clearInterval
只会发生一次会怎么样?clearInterval
可以setInterval
吗?答案 0 :(得分:2)
这是什么意思?这是否意味着通过clearInterval我们可以使用 setInterval已经在JavaScript的队列中了?
是
如果我们setInterval多次但clearInterval会发生什么 只有一次?
每个setInterval
都会返回一个句柄,您可以使用clearInterval
来停止该特定计时器。每个计时器都是单独处理的。
我们可以在setInterval中使用clearInterval吗?
是
JavaScript如何处理预定的流程?
非常像其他任何活动。以一定间隔触发事件,事件处理程序调用您指定的回调函数。如果某个脚本在触发事件时正在运行,那么当控件返回到浏览器时将处理该事件。
答案 1 :(得分:1)
每个setInterval
调用returns一个唯一值,当传递到clearInterval
时,会停止返回该值的setInterval
的特定调用。
因此,在您的示例中,调用test
时返回的setInterval
与另一个setInterval
或setTimeout
调用返回的值不同。因此,在执行clearInterval(test);
时,只有返回test
的调用将在间隔时间内停止运行。