JavaScript
⏳ async/awaitで待機されない
awaitを付け忘れている
😰 こんな症状
awaitを書いたのに非同期処理の結果を待たずに次の行が実行される。async/awaitの使い方で起きやすいよ。
🔍 原因
関数にasyncを付けていない、awaitを付け忘れている、またはforEachの中でawaitを使っているよ。forEachはコールバック関数の戻り値(Promise)を待たないから、中でawaitを書いても並列実行されてしまうんだ。順番に実行したいならfor...ofを使う必要があるよ。
❌ エラーが起きるコード
// 関数にasyncを付けていない、awaitを付け忘れている、またはforEachの中でawaitを使 ✅ 直し方
1. 関数宣言にasyncキーワードが付いているか確認する。 2. 非同期関数の呼び出しにawaitが付いているか確認する。 3. forEach内のawaitはfor...ofループに書き換える。 4. 並列実行したい場合はPromise.all()を使う。
✅ 修正後のコード
// 関数宣言にasyncを付ける。forEach内ではawaitが効かないのでfor...ofループを使 この解決法は役立ちましたか?
🔗 関連するエラー
- Uncaught ReferenceError: xxx is not defined — 変数・関数名のタイポ
- Uncaught TypeError: Cannot read properties of null — getElementById の id が存在しない
- 404 Not Found(スクリプトが読み込まれない) — script の src パスが間違っている
- ボタンを押しても何も起きない — getElementById の id 不一致
- 計算結果が NaN になる — 文字列を数値に変換していない
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説