ホームページ >ウェブフロントエンド >jsチュートリアル >Try...JavaScript で Async/Await を使用してブロックを正しく構造化する方法?

Try...JavaScript で Async/Await を使用してブロックを正しく構造化する方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-07 02:11:10369ブラウズ

How to Correctly Structure Try...Catch Blocks with Async/Await in JavaScript?

Async/Await を使用した Try...Catch ブロックの正しい構文

Async/Await によって促進される JavaScript の非同期プログラミングは、非同期操作を処理する便利な方法。ただし、try...catch ブロック内で宣言された変数の配置では、ベスト プラクティスに関する疑問が生じます。

提供された例では、変数 createdUser は try...catch ブロックの外側で宣言され、次のブロックの後に使用できるようにしています。表現を待ちます。ただし、try 本体内に複数行のビジネス ロジックを組み込む方法は一般的に推奨されません。

ベスト プラクティス

推奨されるアプローチは、すべての非同期操作を try 本体内にカプセル化することです。 try ブロックを使用して、例外が確実にインターセプトされるようにします。これにより、包括的なエラー処理が可能になり、try ブロックの外にロジックが配置されるのを防ぎます。

try {
  const createdUser = await this.User.create(userInfo);

  // Business logic can be placed here as exceptions will be caught.
  console.log(createdUser);
  // ... additional business logic ...
} catch (error) {
  console.error(error); // Handle error from creation or business logic.
}

代替オプション

エラー処理をビジネス ロジックから分離することが重要な場合は、次のことを検討してください。これらの代替案:

  • ブロックの外で変数を宣言し、ブロック内で代入します。
  • 特定の処理または再スローについて、キャッチされた例外タイプをテストします。
  • 履行された Promise と拒否された Promise に個別のコールバックを備えた .then() メソッドを利用し、便利で簡単なソリューションを提供します。

条件付き例外構文は JavaScript でネイティブにサポートされていませんが、カスタム エラー処理は次のように実装できます。必要に応じて .catch() ハンドラー内で例外を再スローします。

以上がTry...JavaScript で Async/Await を使用してブロックを正しく構造化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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