LoginSignup
7
4

More than 5 years have passed since last update.

await 地獄 誰のせい?

Posted at

元ネタ: async/await地獄
https://qiita.com/rana_kualu/items/e6c5c0e4f60b0d18799d

後ろにいくほど手戻りが多くなる

コードが悪い

  • 原因
    • 安易な直列化(元記事での主張)
  • 対策
    • 必要な直列関係の明確化と分割
    • Promise の生成 と await のタイミングをずらす
    • 例: Promise.all, p = new Promise; .... await p

画面設計・機能設計が悪い

  • 原因
    • 1 機能/1 画面が担う担務が多い
  • 対策
    • 機能分割
    • 例:
      • 前: 商品データ取得+在庫データ取得 で画面生成
      • 後: 商品データ取得で画面生成 + 在庫データ取得で画面修正
    • 並列性は実行環境にまかせる(これがJSの王道

インターフェース設計が悪い

  • 原因
    • インターフェースミスマッチによるAPIコール多発
  • 対策
    • サーバサイドのインターフェース変更
    • 例: REST でなく GraphQL を使う
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4