Heim > Fragen und Antworten > Hauptteil
Ich verstehe nicht, warum die Zeitnutzung immer 5000 ms beträgt? Warum denke ich immer, dass der erste 6000 und der zweite 7000 ist?
黄舟2017-05-19 10:24:28
是这样的,setTimeout的延迟时间是相对于他被调用时的时间,第一个在while的阻塞时间1000ms是包含在setTimeout的5000内的,第二个同理后面的5000ms执行完后,他会判断此时setTimeout的延迟时间相对于之前是否已经 了2000ms,如果过了就立即执行了,其实time using的时间就是MAX(setTimeout,while())的值
大家讲道理2017-05-19 10:24:28
虽然settimeout会被入栈 但是延后时间是不会变的 只要没有阻塞 到了时间就会执行 第一个阻塞1000ms 后 执行延后5000ms的阻塞的1000ms也算在内, 第二个阻塞5000ms后会立即执行延后2000ms的