【入門】JavaScriptの非同期処理を簡単に! async/awaitの使い方と基本
投稿日: 更新日:
JavaScriptでAPIからデータを取得したり、時間がかかる処理を行ったりする際、「非同期処理」は避けて通れないテーマです。そして、その非同期処理をよりシンプルに書くための強力な構文がasync/await
です。
今回は、JavaScriptの非同期処理の基本と、async/await
の分かりやすい使い方を解説します。
非同期処理とは?
まず、非同期処理を理解するために、同期処理との違いを見てみましょう。
- 同期処理:処理が完了するまで、次の処理を待機します。
- 非同期処理:処理の完了を待たずに、次の処理を実行します。
例えば、ウェブサイトでAPIから天気情報を取得する場合を考えてみましょう。
同期処理だと、天気情報の取得が完了するまでページの他の部分(ボタンのクリックや画像の表示など)が止まってしまいます。しかし、非同期処理であれば、天気情報を待つ間にページの他の部分をスムーズに動かすことができます。
これまで、非同期処理は「コールバック関数」や「Promise」を使って実装されてきましたが、コードが複雑になりがちでした。そこで登場したのがasync/await
です。
async/awaitの基本
async/await
は、非同期処理を同期処理のように、上から下へ順番に読みやすい形で書くための構文です。
async関数
async
は、非同期処理を含む関数を定義するために使用します。function
キーワードの前にasync
と付けるだけです。async
関数は、必ずPromiseを返します。
// asyncをつけた関数
async function fetchData() {
// ここに非同期処理を書く return "データが取得できました!";
} // async関数はPromiseを返す
fetchData().then(data => {
console.log(data); // "データが取得できました!"
});
await演算子
await
は、async
関数の中でしか使えません。await
はPromiseが解決(完了)するまで処理を一時停止させ、結果を返します。これにより、コールバック地獄や.then()
の連鎖から解放されます。
async function fetchData() {
console.log("データの取得を開始します..."); // Promiseが解決するまで待機
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log("データの取得が完了しました!");
return data;
} fetchData();
上記のコードでは、await fetch()
が完了するまで次の行のawait response.json()
は実行されません。これにより、まるで同期処理のようにシンプルに記述できます。
エラーハンドリング
非同期処理では、エラーが発生する可能性があります。async/await
では、同期処理と同じようにtry...catch
ブロックを使ってエラーを捕捉できます。
async function fetchDataWithError() {
try {
const response = await fetch('https://api.example.com/non-existent-endpoint');
if (!response.ok) {
throw new Error(`HTTPエラー!ステータス: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error("エラーが発生しました:", error);
}
} fetchDataWithError();
まとめ
async/await
は、JavaScriptの非同期処理を驚くほどシンプルで読みやすいコードに変えてくれます。
async
:非同期処理を含む関数を定義する。await
:async
関数の中でPromiseの完了を待機する。try...catch
:エラーを安全に処理する。
これらの構文をマスターすれば、API通信やデータベースアクセスといった非同期処理をより効率的に、そしてバグなく実装できるようになります。
ホームページ制作のご依頼・ご相談
- 効果測定が可能な、成果重視のホームページが欲しい
- 問い合わせ件数を増やしたい
- スマートフォンに対応したホームページが欲しい
- 簡単な操作で自社管理できるホームページが欲しい
- サポートと継続的なメンテナンスまで安心してお願いしたい
- SEOに強い制作会社を探している
ホームページ制作のご依頼・ご相談は、Webディレクターのあがのが対応させていただきます。
ご対応エリア:広島県を中心に全国対応
人気NOTE
1234567890-
参考文献の書き方:Webサイト・書籍・論文など、正しい方法を解説
-
定期タスクはNotionの繰り返し機能を使おう!リマインドにも◎
-
オートコンプリート機能を徹底解説!設定・無効化・活用方法まで
-
(Copyright)とは?著作権表示の正しい書き方や意味を解説
-
サーバーエラー発生時の対処法:原因と解決策を徹底解説
-
5W3Hで情報を整理!ビジネスや日常で役立つ活用方法
-
ホームページ作成費用・制作費用の相場早見表付き【2024年最新版】
-
ChatGPTのプラン選びで失敗しない!料金、機能、選び方の完全ガイド
-
chromeでパスワードが保存されない
-
Notionのフルページデータベースをインラインビューに変更する方法