ForeveHG / Frontend-Daily-Interview

学习,尝试回答一些前端面试题
1 stars 0 forks source link

25. 怎样理解setTimeout执行误差 #25

Open ForeveHG opened 4 years ago

ForeveHG commented 4 years ago

js是单线程的,setTimeout做的事情就是在指定时间后将回调函数加到宏任务队列中去,具体什么时候执行这个回调函数要看当前事件循环队列的情况,这时候就会造成一个时间差。

关于setTimeout的执行误差,html文档里有这句话:

This API does not guarantee that timers will run exactly on schedule. Delays due to CPU load, other tasks, etc, are to be expected. 由于CPU负载、其他任务等原因会造成setTimeout延迟,所以不能保证定时器完全按照计划执行。