問題
12
JavaScript
イベントループ詳細
JavaScriptの問題に挑戦しよう!
問題
「イベントループ詳細」
PromiseとsetTimeoutの実行順を説明できるコードを書いてください。
解答と解説(イベントループ詳細)
解説
LINE登録して解答を見る
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
JavaScriptのイベントループでは、マイクロタスク(Promise)とマクロタスク(setTimeout)で実行優先度が異なります。上記コードでは"A"→"D"→"B"→"C"の順に出力されます。Promiseのthenはマイクロタスクキューに入り、現在のコールスタック終了後すぐに処理されます。一方、setTimeoutはマクロタスクキューに入り、マイクロタスク処理完了後に実行されます。この優先順位を理解していないと非同期処理の順序を誤解し、バグの原因になります。
補足
非同期処理では「コールスタック→マイクロタスク→マクロタスク」の順序を意識することが重要です。特にPromiseとsetTimeoutの違いは実務で頻出します。