这是包含一些示例代码的链接。
在开始测试之前,我假设 setTimeout()
的返回值是某种浏览器对象。
事实上它似乎是一个简单的整数。我还认为将 setTimeout 的返回值分配给全局变量意味着只能有一个这样的对象。但是,正如您将看到的,如果您多次单击“启动计时器”按钮,则可能会有多个计时器同时运行。
例如
- 我点击开始按钮
- 脚本创建超时
- 现在是
超时 1
,因为五秒后会发生 - 一秒钟后,我再次点击,现在出现了
超时 2
- 现在,由于四秒内发生火灾,我发生了
超时 1
,并且在五秒内发生了超时 2
- 我点击停止按钮,只有
timeout 2
被清除
用户点击创建多个计时器的问题可以通过在设置之前始终清除当前超时变量来解决。但我真的很想了解 Javascript 在这里实际上在做什么。
最佳答案
setTimeout
和 setInterval
返回一个数字。该数字是计时器的id
。可以使用 clearTimeout
停止事件计时器和 clearInterval
分别。
如果您丢失了计时器的 ID,您要么必须再次猜测,要么等待它完成(假设超时)。
如果定时器在delay
参数指定的毫秒数内没有被取消,它将在全局上下文中执行回调函数。
关于javascript - Javascript Timeout 对象到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079869/