我知道这可能是个老问题。但是在谷歌搜索后我真的很困惑。
从this question开始,我了解到setTimeout将永远执行,
但是从this one开始,我知道它只会执行一次。
奇怪的是,当我在浏览器控制台中测试它时,我碰巧看到它一直在执行..
但有时它只执行一次:
相同的代码给出不同的结果。谁知道为什么?
编辑: 我现在可以相信setTimeout只执行一次,但是如何解释我测试的第一个截图?
答案 0 :(得分:4)
setTimeout 只会执行一次。
您链接到的stackoverflow问题中的代码会继续执行,因为它是递归。 setTimeout调用调用自身。
答案 1 :(得分:1)
setTimeout
不永远执行,但如linked question所示,您可以通过在函数中再次调用setInterval
来模拟setTimeout
你转到setTimeout
此answer解释了setTimeout
/ setInterval
的返回值是您可以用来稍后引用计时器以取消超时的值。