ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript でのエラー処理に Async/Await と .then/.catch を併用できますか?

JavaScript でのエラー処理に Async/Await と .then/.catch を併用できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 02:48:30399ブラウズ

Can Async/Await and .then/.catch Be Used Together for Error Handling in JavaScript?

Async/Await と .then/.catch の使用

Async/await と .then/.catch は両方とも JavaScript のエラー処理メカニズムです。 async/await はより簡潔で最新ですが、.then/.catch も依然として実行可能なオプションです。これらを一緒に使用すると利点や欠点はありますか?

提供されたコード スニペットは、両方のメカニズムを組み合わせて使用​​するシナリオを示しています。ただし、答えは、try/catch を async/await と .catch の組み合わせに置き換えることを提案しています。これにより、コードが簡略化され、async 関数によって確立された同期スコープ内にコードが保持されます。

例を次に示します。

<code class="javascript">async function asyncTask() {
  throw new Error('network');
}

async function main() {
  const result = await asyncTask().catch(error => console.error(error));
  console.log('result:', result);
}

main();</code>

この例では、asyncTask はエラーをスローし、これは async 関数によって処理されます。 async メソッド main 内の .catch ブロック。エラーはコンソールに記録されますが、実行は次の行に進みます。関数は明示的な値を返さなかったため、結果変数は未定義に設定されます。

結論としては、 async/await と の両方を使用しているときです。 then/.catch を一緒に使用しても害はありません。一般に、非同期関数内のエラー処理には、より簡潔で最新の async/await と .catch の組み合わせを使用することをお勧めします。このアプローチにより、コードのコンパクトさが保証され、async キーワードによって確立された同期スコープが維持されます。

以上がJavaScript でのエラー処理に Async/Await と .then/.catch を併用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。