非同期処理を同期的に書けるシンタックスシュガー
async function fetchUser(id: number): Promise<User> {
try {
const res = await fetch(`/api/users/${id}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return await res.json() as User;
} catch (err) {
console.error('取得失敗:', err);
throw err;
}
}
// 並列実行(逐次にならないよう注意)
const [a, b] = await Promise.all([fetchA(), fetchB()]);awaitはasync関数内でしか使えない。エラーはtry/catchで捕捉する。awaitを連続して書くと逐次実行になるためPromise.allで並列化する。