そのawait、本当に必要? 不要なawaitを避けるための考え方

に公開
7

Discussion

Kohei WatanabeKohei Watanabe

awaitする場合 awaitしない場合

async functionか否かという違いもありますが、両方ともasync function同士で比較するとまた違った結果になりそうで面白いですね

nanasenanase

ありがとうございます。
確かに下記のような3パターンが考えられ、それぞれで比較すべきだと思ったので、別の記事でまとめてみようと思います。

  • async function (awaitあり)
  • async function (awaitなし)
  • no async function
junerjuner

await null も観ていただけるとありがたいです。( ※ queueMicrotask 相当の挙動

r-sugir-sugi

とても勉強になりました!(不要なawaitしまくってました🥺)

私みたいに「一旦何も考えずに、awaitついてるから安心」みたいな気持ちの人が大多数なので、eslintとかで静的にエラーにする仕組みがないと啓蒙コストの方が高そうかも、、?🤔

nanasenanase

ありがとうございます!
仰る通りで規約化などしようとすると啓蒙コストは高そうですね。
また、その必要性自体もかなり限定的だとも思うので、開発メンバー全員で遵守すべきものでもないのかなと思っています。(記事を書いておいてなんですが)
とはいえ、「なんとなく」で書くのと、理解したうえで書くのとでは大きな差があると思うので、少しでも気付きを得てもらえていたら嬉しいです。

Jumpei OgawaJumpei Ogawa

ESLint のルールで return await asyncFunc(); を禁止するルールがあったので、長年何も考えずに従ってきましたが、こういう背景があったのですね。

nanasenanase

このようなルールが実際に存在することは知らなかったので、ありがとうございます。
また上記に関連して、再度調査した中でawaitを使用することによるメリットも存在し、学びがあったため別記事で書こうと思います。