BFE.devでのAI解答例 - JavaScript クイズ
1. Promise order
以下が出力されます:
1
2
3
4
7
5
6
9
8
解説:
-
最初に1がconsole.logされます。
-
const promiseに新しいPromiseが作られ、2がconsole.logされます。
-
.then()のブロックのconsole.log(5)は、Promiseが解決された後に非同期的に呼び出されるため、まだ実行されません。
-
今度は4がconsole.logされます。
-
promise.then()のブロックのコードはすぐに実行されるわけではないため、console.log(7)が実行されます。
-
すぐに.then()がチェーンされ、console.log(6)も非同期的に実行されます。
-
setTimeout()の最初のコールバック(10ミリ秒後)と2番目のコールバック(0ミリ秒後)が両方ともスタックに送信されます。
-
最初のsetTimeout()コールバックは、より長いディレイがあるため、2番目のコールバックよりも遅れて、console.log(8)が出力されます。
-
2番目のsetTimeout()コールバックは、ディレイが0ミリ秒であっても、ブロッキングプロセスが完了するまで待機しなければなりません。 実行にかかる時間は、プログラムが現在の実行環境に関連しています。 したがって、最後にconsole.log(9)が出力されます。