非同期プログラミングが必要な理由

JavaScriptはシングルスレッド言語であり、ネットワーク要求、ファイルの読み書きなどの時間がかかる操作は非同期に実行しなければならない。そうしないと、インタフェースが詰まってしまう。

コールバック地獄の問題

Promise三相

  • pending:進行中
  • fulfilled:成功
  • rejected:失敗しました
fetch('/api/user').then(res => res.json()).then(data => console.log(data)).catch(err => console.error(err));

async/await構文糖

ES 2017を導入し、非同期コードを同期のように見せる:

async function loadUser() {

並列実行

複数の独立した要求がPromise.allで並列されている。

一般的なトラップ

  • awaitを忘れて結果ではなくPromiseオブジェクトを取得する
  • ループ中のawaitの使用エラーによるシリアル実行
  • try/catchの書き込み漏れによる取得されていない例外

免責事項:当サイトの記事はオリジナル、転載、AI生成などのソースから提供されています。著作権その他の問題がある場合は、フィードバックまでご連絡ください。速やかに確認し対応いたします。