搜尋

首頁  >  問答  >  主體

javascript - 關於setTimeout問題

#不懂為何time using 都是5000ms ?我咋老覺得第一個是6000,第二個是7000?

过去多啦不再A梦过去多啦不再A梦2819 天前380

全部回覆(2)我來回復

  • 黄舟

    黄舟2017-05-19 10:24:28

    是這樣的,setTimeout的延遲時間是相對於他被調用時的時間,第一個在while的阻塞時間1000ms是包含在setTimeout的5000內的,第二個同理後面的5000ms執行完後,他會判斷此時setTimeout的延遲時間相對於之前是否已經了2000ms,如果過了就立即執行了,其實time using的時間就是MAX(setTimeout,while())的值

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:24:28

    雖然settimeout會被入棧但是延遲時間是不會變的只要沒有阻塞到了時間就會執行第一個阻塞1000ms 後執行推遲5000ms的阻塞的1000ms也算在內, 第二個阻塞5000ms後會立即執行延後2000ms的

    回覆
    0
  • 取消回覆