1

我知道这可能是一个老问题。但经过几次谷歌搜索后,我真的很困惑。

这个问题中,我了解到 setTimeout 将永远执行,

但从这个,我知道它只会执行一次。

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

在此处输入图像描述

但有时它只执行一次:

在此处输入图像描述

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

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

4

2 回答 2

4

setTimeout只会执行一次

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

于 2013-05-02T03:03:02.363 回答
1

setTimeout不会永远执行,尽管如链接问题中所示,您可以通过在传递给的函数中再次setInterval调用来模拟setTimeoutsetTimeout

这个答案解释了来自setTimeout/的返回值setInterval是您以后可以用来引用计时器以取消超时的值。

于 2013-05-02T03:03:41.643 回答