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.
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 }
Jika anda ingin mengendalikan ralat hanya daripada dalam tugasan janji, anda mempunyai tiga alternatif:
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 }
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; } }
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!