Rumah >hujung hadapan web >tutorial js >Cara Menggunakan Try...Catch dengan Async/Await dalam TypeScript dengan betul?

Cara Menggunakan Try...Catch dengan Async/Await dalam TypeScript dengan betul?

DDD
DDDasal
2024-12-09 20:10:16494semak imbas

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

Cuba Betul...Tangkap Sintaks Menggunakan Async/Await

Apabila memanfaatkan sifat tak segerak Async/Await dalam bahasa seperti TypeScript, adalah penting untuk menggunakan sintaks yang betul untuk pengendalian ralat. Satu persoalan biasa timbul mengenai penempatan pembolehubah yang akan ditunggu dalam percubaan...catch block.

Amalan Terbaik

Secara amnya dianggap sebagai amalan terbaik untuk meletakkan pengisytiharan pembolehubah di dalam blok cuba dan tetapkan nilainya di sana. Ini membenarkan pengendalian ralat dalam skop penciptaan pembolehubah dan memastikan ia sentiasa mengandungi nilai yang sah:

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
}

Alternatif kepada Perisytiharan Luar

Jika anda ingin mengendalikan ralat hanya daripada dalam tugasan janji, anda mempunyai tiga alternatif:

  1. Ujian untuk Pembolehubah Tugasan: Isytiharkan pembolehubah di luar blok dan semak tugasannya:
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. Ujian Jenis Ralat: Uji pengecualian yang ditangkap untuk jenis dan mengendalikannya dengan sewajarnya:
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. Kemudian Panggilan balik: Gunakan kaedah kemudian dengan dua panggil balik dan bukannya blok cuba/tangkap:
await this.User.create(userInfo).then(createdUser => {
    // user was successfully created
    console.log(createdUser);
    // business logic goes here
}, error => {
    console.error(error); // from creation
});

Setiap alternatif mempunyai kebaikan dan keburukan, jadi pertimbangkan keperluan khusus aplikasi anda apabila memilih pendekatan yang paling sesuai.

Atas ialah kandungan terperinci Cara Menggunakan Try...Catch dengan Async/Await dalam TypeScript dengan betul?. 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