setInterval(func, 1000)
如果func
花费的时间超过1000
ms,下一次呼叫会等待1000
ms还是立即执行,该怎么办?
答案 0 :(得分:1)
Flash运行时是单线程的。因此,只要有要执行的操作(函数调用),它就会排队等待已经挂起的操作。所以在任何时候只执行一个函数。
在你的情况下如果你的函数func
执行时间超过1000毫秒,即如果func
处于执行和时间之间interval到期后,对func
的新呼叫排队。因此,只要第一个func
完成执行,那么下一个调用将被选中(如果有的话)。在这种情况下,它将是另一个func
电话。如果在此之前有其他侦听器,则会按顺序调用它们。
答案 1 :(得分:0)
如果没有其他事情发生,将每1000毫秒调用一次回调方法。
我写了半段代码来详细说明每1000ms调用一个间隔的方法,并且根据布尔值,间隔重新调用或删除自身。如果您要我粘贴,请告诉我。
编辑:查看bhups的答案,更好的描述 - 如果你想要我提到的代码,请告诉我。