javascript - 关于setTimeout问题
过去多啦不再A梦
过去多啦不再A梦 2017-05-19 10:22:28
0
2
395

不明白为何time using 都是5000ms ?我咋老觉得第一个是6000,第二个是7000?

过去多啦不再A梦
过去多啦不再A梦

全部回复(2)
黄舟

是这样的,setTimeout的延迟时间是相对于他被调用时的时间,第一个在while的阻塞时间1000ms是包含在setTimeout的5000内的,第二个同理后面的5000ms执行完后,他会判断此时setTimeout的延迟时间相对于之前是否已经 了2000ms,如果过了就立即执行了,其实time using的时间就是MAX(setTimeout,while())的值

大家讲道理

虽然settimeout会被入栈 但是延后时间是不会变的 只要没有阻塞 到了时间就会执行 第一个阻塞1000ms 后 执行延后5000ms的阻塞的1000ms也算在内, 第二个阻塞5000ms后会立即执行延后2000ms的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板