async/await(えいしんくあうぇいと)
最終更新:2026/4/27
async/awaitは、非同期処理を同期的な処理と同様の形式で記述するためのプログラミング言語の構文である。
ポイント
非同期処理を同期コードのように記述でき、コールバック地獄やPromiseの複雑さを軽減する。エラー処理もtry-catchブロックで記述できる。
async/awaitとは
async/awaitは、非同期処理を扱うためのJavaScriptやC#などのプログラミング言語における構文糖衣です。非同期処理をより読みやすく、書きやすくすることを目的として導入されました。従来の非同期処理では、コールバック関数やPromiseを使用する必要があり、コードが複雑になりがちでした。async/awaitを使用することで、非同期処理を同期コードのように記述できるようになり、可読性と保守性が向上します。
async関数の定義
asyncキーワードは、関数を非同期関数として定義するために使用されます。async関数は、常にPromiseを返します。関数内でawaitキーワードを使用することで、Promiseが解決されるまで処理を一時停止し、結果を取得できます。
async function fetchData() {
const response = await fetch('https://example.com/data');
const data = await response.json();
return data;
}
上記の例では、fetchData関数はasyncキーワードで定義されており、awaitキーワードを使用してfetch関数が返すPromiseが解決されるまで処理を一時停止しています。これにより、非同期処理を同期コードのように記述できます。
awaitキーワードの使用
awaitキーワードは、async関数内でのみ使用できます。awaitキーワードは、Promiseオブジェクトの前に記述され、Promiseが解決されるまで処理を一時停止します。Promiseが解決されると、その結果が返されます。awaitキーワードを使用することで、非同期処理を同期コードのように記述でき、コードの可読性が向上します。
エラー処理
async/awaitを使用する場合、エラー処理はtry-catchブロックを使用して行うことができます。これにより、非同期処理で発生したエラーを同期コードのように捕捉できます。
try {
const data = await fetchData();
console.log(data);
} catch (error) {
console.error(error);
}
メリット
- コードの可読性と保守性の向上
- エラー処理の簡素化
- コールバック地獄やPromiseの複雑さの軽減
デメリット
- async関数内でのみawaitキーワードを使用できる
- 非同期処理の理解が必要