Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道这可能是一个老问题。但经过几次谷歌搜索后,我真的很困惑。
从这个问题中,我了解到 setTimeout 将永远执行,
但从这个,我知道它只会执行一次。
奇怪的是,当我在浏览器控制台中测试它时,我碰巧看到它一直在执行..
但有时它只执行一次:
相同的代码给出不同的结果。有谁知道为什么?
编辑: 我现在可以相信 setTimeout 只执行一次,但是如何解释我的测试的第一个屏幕截图?
setTimeout只会执行一次。
您链接到的 stackoverflow 问题中的代码会继续执行,因为它是递归的。setTimeout 调用,调用它自己。
setTimeout不会永远执行,尽管如链接问题中所示,您可以通过在传递给的函数中再次setInterval调用来模拟setTimeoutsetTimeout
setTimeout
setInterval
这个答案解释了来自setTimeout/的返回值setInterval是您以后可以用来引用计时器以取消超时的值。