Tips

開発Tips(2025-11-03)

非同期処理を効率的に扱い、可読性の高いコードを書くためのテクニックです。`async/await`構文を活用することで、Promiseチェーンを簡潔に記述し、同期処理のように扱えます。

JavaScript

非同期処理を効率的に扱い、可読性の高いコードを書くためのテクニックです。async/await構文を活用することで、Promiseチェーンを簡潔に記述し、同期処理のように扱えます。

エラーハンドリングを強化するasync/await構文の活用

async/await構文は、Promiseベースの非同期処理を扱う際に非常に強力なツールです。try...catchブロックと組み合わせることで、非同期処理中のエラーを同期処理のようにキャッチし、より堅牢なコードを書くことができます。

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('データの取得に失敗しました:', error);
    // エラーハンドリング処理 (例: ユーザーへのエラーメッセージ表示)
    return null; // またはエラーに応じた適切な値を返す
  }
}

async function processData() {
  const data = await fetchData();
  if (data) {
    console.log('取得したデータ:', data);
    // データの処理を行う
  } else {
    console.log('データが取得できなかったため、処理を中止します。');
  }
}

processData();

注意点:

  • awaitasync関数の中でしか使用できません。
  • エラーハンドリングは、必要に応じて複数のtry...catchブロックで分割できます。例えば、fetchData関数自体にエラーハンドリングを実装し、さらにprocessData関数でも全体のエラーハンドリングを行うことができます。

おすすめポイント:

  • コードの可読性と保守性が向上します。Promiseチェーンのネストが深くなるのを防ぎ、処理の流れを追いやすくなります。
  • エラーハンドリングが容易になります。try...catchブロックを使用することで、非同期処理中のエラーをまとめて処理できます。
  • デバッグが容易になります。エラーが発生した箇所を特定しやすくなります。