Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menggunakan Async/Await dengan betul dengan Try...Catch in TypeScript?

Bagaimana untuk Menggunakan Async/Await dengan betul dengan Try...Catch in TypeScript?

Linda Hamilton
Linda Hamiltonasal
2024-12-11 02:11:10291semak imbas

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

Sintaks Async/Await Betul untuk Cuba...Tangkap dengan Pengisytiharan Pembolehubah

Ciri Async/Await baharu dalam TypeScript membenarkan kod yang lebih rata , tetapi penempatan pembolehubah dalam percubaan...tangkap blok apabila menggunakan await boleh mengelirukan.

Amalan Terbaik

Adalah dianggap amalan terbaik untuk memasukkan berbilang baris logik perniagaan dalam badan percubaan, memastikan pengecualian ditangkap dengan betul.

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

    // Business logic goes here
} catch (error) {
    console.error(error); // From creation or business logic
}

Mengendalikan Ralat daripada Janji

Jika anda hanya mahu menangkap dan mengendalikan ralat daripada janji itu sendiri, anda mempunyai tiga pilihan:

  1. Isytiharkan Pembolehubah Luar dan Cawangan:

    • Tetapkan nilai lalai kepada pembolehubah dalam tangkapan blok.
    • Kembali awal atau baling semula pengecualian daripada blok tangkapan.
    • Tetapkan bendera untuk menunjukkan sama ada blok tangkapan menangkap pengecualian.
    • Uji nilai pembolehubah untuk menentukan sama ada ia telah diberikan.
  2. Pengecualian Tertangkap Ujian Jenis:

    • Uji pengecualian yang ditangkap terhadap jenis ralat tertentu.
  3. Gunakan kemudian dengan Panggilan Balik:

    • Tulis dua fungsi panggil balik, satu untuk kejayaan dan satu untuk ralat, bukannya menggunakan cuba/tangkap.

Contoh:

await this.User.create(userInfo).then(createdUser => {
    // Business logic goes here
}, error => {
    console.error(error); // From creation
});

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Async/Await dengan betul dengan Try...Catch in TypeScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn