setTimeout执行了多少次?

时间:2013-05-02 03:00:12

标签: javascript settimeout setinterval

我知道这可能是个老问题。但是在谷歌搜索后我真的很困惑。

this question开始,我了解到setTimeout将永远执行,

但是从this one开始,我知道它只会执行一次。

奇怪的是,当我在浏览器控制台中测试它时,我碰巧看到它一直在执行..

enter image description here

但有时它只执行一次:

enter image description here

相同的代码给出不同的结果。谁知道为什么?

编辑: 我现在可以相信setTimeout只执行一次,但是如何解释我测试的第一个截图?

2 个答案:

答案 0 :(得分:4)

setTimeout 只会执行一次

您链接到的stackoverflow问题中的代码会继续执行,因为它是递归。 setTimeout调用调用自身。

答案 1 :(得分:1)

setTimeout 永远执行,但如linked question所示,您可以通过在函数中再次调用setInterval来模拟setTimeout你转到setTimeout

answer解释了setTimeout / setInterval的返回值是您可以用来稍后引用计时器以取消超时的值。