驚いたかもしれません。この3つのコードの出力結果は、すべて同じ 「1, 2, 3」です。 (全問正解できた方、素晴らしいです。) しかし、「なぜnew Promiseの中の処理が先に実行されるのか?」、あるいは「awaitの有無で何が違うのか?」といった点に、少し戸惑いはありませんでしたか? このような直感的ではない挙動こそ、 JavaScriptの非同期処理の「クセ」 とも言える部分です。 この記事では、あなたが今まで何気なく使っていた非同期処理について、その仕組みから深く理解することを目指します。 まずはその第一歩として、「非同期」という言葉そのものの意味から確認していきましょう。 そもそも非同期(asynchronous)とは まずは言葉の定義から見ていきましょう。IT用語辞典 e-Wordsでは、以下のように説明されています。 複数の主体がタイミングを合わせずに通信や処理を行う方式