首先,我們必須明確一個概念:
JS是單線程的
其次,
JS是有異步的
js的異步分 微任務
、宏任務
主線任務執行完,js會到微任務列表找任務,找不到了再到宏任務裏面找
其中,Promise 的任務是 微任務
# 定時器的誤區
延時時間不放在 宏任務裏面,
也就是
如果定延時時間1s
而且主線程和微任務執行時間大於1s
輪到定時器時候,定時器的回調方法會立即執行
# 證明 js 是單線程
除了看 標準原文
下面代碼也直觀看出來
(無論執行多少次,結果肯定不變【不可能出現1、1的情況】)