javascript – Über setTimeout-Probleme
过去多啦不再A梦
过去多啦不再A梦 2017-05-19 10:22:28
0
2
375

Ich verstehe nicht, warum die Zeitnutzung immer 5000 ms beträgt? Warum denke ich immer, dass der erste 6000 und der zweite 7000 ist?

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

Antworte allen(2)
黄舟

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

大家讲道理

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage