JavaScript 是单线程语言,但它允许通过设置超时值和间歇时间值来调度代码在特定的时刻执行。前者是在指定的时间过后执行代码,而后者则是每隔指定时间就执行一次代码。
超时调用
超时调用需要使用 window 对象的 setTimeout() 方法,它接收两个参数:要执行的代码和以毫秒表示的时间。其中,第一个参数可以是一个包含 JavaScript 代码的字符串,也可以是一个函数。例:
![c75ee5de8271ba21667eec4c7080f001.png](https://img-blog.csdnimg.cn/img_convert/c75ee5de8271ba21667eec4c7080f001.png)
setTimeout() 方法示例
第二个参数是一个表示等待多长时间的毫秒数,但经过该时间后指定的代码不一定会执行。JavaScript 是一个单线程的解释器,因此一定时间内只能执行一段代码。为了控制要执行的代码,就有一个 JavaScript 的任务队列。这些任务队列会按照将它们添加到队列的顺序执行。 setTimeout() 的第二个参数告诉 JavaScript 再过多长时间把当前任务添加到队列中。如果队列是空的,那么添加的代码会立即执行,如果队列不是空的,那么它就要等前面的代码执行完以后再执行。
调用 setTimeout() 之后,该方法会返回一个数值 ID,表示超时调用。这个超时调用 ID 是计划执行代码的唯一标识,可以通过它来取消超时调用,要取消尚未执行的超时调用计划,可以调用 clearTimeout() 方