JavaScript/async
async
async は、非同期関数を定義するために使用されるJavaScriptのキーワードです。async 関数内で使用される await キーワードとともに、非同期処理を直感的に扱うための手段を提供します。async 関数は常に Promise を返します。
構文
async function example() { const result = await someAsyncFunction(); console.log(result); }
説明
使用例
// async 関数の例 async function fetchData() { const response = await fetch('https://api.example.com/data'); const data = await response.json(); console.log(data); } fetchData(); // 非同期にデータを取得し、結果を表示
非同期関数の戻り値
async関数の戻り値は常にPromiseです。返されたPromiseは、関数内で明示的にreturnされた値を解決します。return文がない場合、async関数はPromise.resolve(undefined)を返します。
// async 関数の戻り値 async function example() { return 42; } example().then(result => console.log(result)); // 42
async 関数とエラーハンドリング
- 非同期関数内でエラーが発生した場合、そのエラーは
Promiseによって返されます。エラーハンドリングはtry...catch文を使って行います。 awaitと組み合わせて使用することで、非同期関数のエラーも同期的に処理することができます。
// エラーハンドリングの例 async function fetchDataWithErrorHandling() { try { const response = await fetch('https://api.example.com/data'); const data = await response.json(); console.log(data); } catch (error) { console.error('Error fetching data:', error); } } fetchDataWithErrorHandling(); // エラーが発生した場合、catch で処理される
async と Promise
async 関数は、Promise のラッパーとして機能します。async 関数が返すのは、Promise であり、その Promise が解決されると、非同期処理の結果が返されます。これにより、非同期コードは Promise チェーンや then メソッドと組み合わせて使うことができます。
// async と Promise の組み合わせ async function example() { return "Hello, World!"; } example().then(result => console.log(result)); // "Hello, World!"