データを受け取ってから次の処理をしたいときにasync/await
を使う
async function fetchUserData() {
// ここで「データが返ってくるまで待つ」
const res = await fetch('/api/user');
const data = await res.json();
// データを受け取ってから次の処理へ
console.log('ユーザー名:', data.name);
// ここで受け取ったデータを使って何かする(画面表示とか)
}
この場合、
-
fetch()が終わってレスポンスを受け取るまで待つ
-
res.json()でデータをJSONに変換するのを待つ
-
そのあとでやっとconsole.logなどの次の処理が走る
まとめると
-
fetch()
とres.json()
はどちらもPromiseを返す非同期処理 -
Promiseは「結果がまだ返ってきていないけど、後で返す約束の箱」のようなもの
-
だから
await
を使って、そのPromiseが終わるまで待つ必要がある -
async
は、その関数の中でawait
を使うために必要な合図