技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

await と async

JavaScript のコードで、最近、await, async をよく目にする。await は async の中で使う仕様になっており、それがなぜか分からなかったので、ちょっと調べたみた。

[JS]なぜawaitはasync関数の中にしか書けないのか - Qiita

などの記事を読んだところ、以下のように理解した。

  • 関数内で await を使うと、その関数は非同期になる。処理が await の直前まで進み、そこで一旦、関数が終了する感じ。
  • つまり、await を使うと、その関数は非同期になるので、関数定義に async を付与する必要がある。

ざっくりと言うと、JavaScript の仕組み上、await は async の中で使う必要があるということかな。

 

よく使うパターンとして、fetch 関数 (非同期関数) の結果を await で待つことがあるが、この処理を包含する関数定義には、上述の理由で async を付与する必要がある。

つまり、非同期関数の結果を待ちたいので await する ⇒ await を使ったので、その処理を包含する関数定義に async を付ける、という感じだと思う。