ホームページ >ウェブフロントエンド >jsチュートリアル >TypeScript で Try...Catch を Async/Await で正しく使用する方法は?

TypeScript で Try...Catch を Async/Await で正しく使用する方法は?

DDD
DDDオリジナル
2024-12-09 20:10:16484ブラウズ

How to Correctly Use Try...Catch with Async/Await in TypeScript?

Async/Await を使用した正しい Try...Catch 構文

TypeScript などの言語で Async/Await の非同期の性質を利用する場合は、正しい構文を使用することが重要ですエラー処理用。 try...catch ブロック内で待機する変数の配置に関してよくある質問が 1 つあります。

ベスト プラクティス

一般に、変数宣言を 内 try ブロックに値を割り当てます。これにより、変数の作成範囲内でエラー処理が可能になり、常に有効な値が含まれることが保証されます。

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

    console.log(createdUser);
    // business logic goes here
} catch (error) {
    console.error(error); // from creation or business logic
}
外部宣言の代替

Promise の割り当て内には、次の 3 つの選択肢があります:

  1. 変数のテスト割り当て: ブロックの外で変数を宣言し、その割り当てを確認します:
let createdUser;
try {
    createdUser = await this.User.create(userInfo);
} catch (error) {
    console.error(error); // from creation
}
if (createdUser) { // user was successfully created
    console.log(createdUser);
    // business logic goes here
}
  1. エラーの型のテスト: キャッチされた例外の型をテストし、対処してくださいそれに応じて:
try {
    const createdUser = await this.User.create(userInfo);
    // user was successfully created
    console.log(createdUser);
    // business logic goes here
} catch (error) {
    if (error instanceof CreationError) {
        console.error(error); // from creation
    } else {
        throw error;
    }
}
  1. Then コールバック: try/catch ブロックの代わりに 2 つのコールバックを含む then メソッドを使用します:
await this.User.create(userInfo).then(createdUser => {
    // user was successfully created
    console.log(createdUser);
    // business logic goes here
}, error => {
    console.error(error); // from creation
});
それぞれの代替案には長所と短所があるため、最適な代替案を選択するときは、アプリケーションの特定の要件を考慮してください。アプローチします。

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

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