「asyncとawaitって何?Promiseと何が違うの?」 JavaScriptを書いていて、こんな疑問を抱いたことはありませんか?
今回は、JavaScriptで非同期処理を書くときによく使われるasync/await
について、初心者の方にもわかりやすく解説していきます。使い方の基本から、よくあるエラーの原因と対処法まで、この記事でしっかり押さえていきましょう!
目次
async/awaitとは?
async
とawait
は、JavaScriptで非同期処理(時間がかかる処理)をシンプルに書けるようにする仕組みです。
✅ そもそも非同期処理って?
JavaScriptは基本的に上から順にコードを実行していきます。
でも、
- データをAPIから取得する
- ファイルを読み込む
- サーバーにアクセスする など、すぐに終わらない処理があると、その完了を待ってると他の処理が止まってしまいます。
そこで登場するのが非同期処理。待たずに次の処理を進められるようにする仕組みです。
async/awaitの基本
使い方の例
async function getData() {
try {
const res = await fetch("https://api.example.com/data");
const json = await res.json();
console.log(json);
} catch (err) {
console.error("エラーが発生しました", err);
}
}
解説
async
を関数につけると、その関数は非同期関数になりますawait
を使うと、Promiseの完了を待ってから次に進むようになりますtry/catch
でエラーハンドリングもバッチリ
Promiseとの違いって?
非同期処理は、これまでもPromise
を使って書く方法がありました。
fetch("https://api.example.com/data")
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error("エラー", err));
これはこれでOKですが、.then().then().catch()
が続くと見づらくなってきます。
async/await
は、見た目が同期処理っぽくなるので、読みやすくて管理しやすいんです。
よくあるエラーと対処法
エラー内容 | 原因 | 対処方法 |
---|---|---|
await is only valid in async function | async なしでawait を書いている | async を関数の前につける |
Unexpected token 'await' | トップレベル(関数外)でawait を使っている | 関数内に処理を移す |
ネットワークエラー | APIのURL間違いや通信障害 | URLを確認、CORSエラーも要チェック |
まとめ:まずは1回書いてみよう
async
は関数の前につけるだけでOKawait
でPromiseの完了を待てる- 非同期処理がスッキリ書けて、コードが読みやすくなる!
最初は少し戸惑うかもしれませんが、慣れれば手放せない仕組みです。 実際にfetchやAPI通信のコードを書きながら、少しずつ体感してみましょう。
コメント