イベントループ
Event Loop: 無限ループでタスクを待機している
call stack
現在やっている処理が積まれる
空になると画面の更新がされて、その後にmicro/macroTaskQueueのtaskが積まれる
microTaskQueue(v8)
Promise関数が積まれる
callbackStackが開いたら実行される
macroTaskQueue(v8)
callbackQueue
callbackStackとmicroTaskQueueが開いたら実行される
WebAPI
setTimeout, eventlistenerはここ。
普通はここからmactoTaskQueueに(callback関数が)積まれる
code:js
for(let i = 0; i< 10; i++){
console.debug("hoge")
}
setTimeout(()=>{console.debug("huga1")},10)
setTimeout(()=>{console.debug("huga2")},0)
for(let i = 0; i< 500; i++){
console.debug("hoge")
}
code:bash
"hoge" # 510回
"huga2"
"huga1"
"hoge"の出力にたくさん時間がかかったとしても, "huga2"が先に実行されることはない。
setTimeoutは, webAPI->Callbackに積まれるまでの秒数?