Rumah > hujung hadapan web > tutorial js > Adakah berfaedah untuk mencampur async/menunggu dan .then() dalam JavaScript?

Adakah berfaedah untuk mencampur async/menunggu dan .then() dalam JavaScript?

Barbara Streisand
Lepaskan: 2024-11-02 07:57:02
asal
916 orang telah melayarinya

Is it beneficial to mix async/await and .then() in JavaScript?

Mencampurkan Async/Await dan .then() dalam JavaScript

Soalan:

Adakah dinasihatkan untuk menggunakan kedua-dua async /await dan .then().catch() dalam fungsi tak segerak yang sama, seperti yang dilihat di bawah?

async apiCall(params) {
    var results = await this.anotherCall()
      .then(results => {
        //do any results transformations
        return results;
      })
      .catch(error => {
        //handle any errors here
      });
    return results;
  }
Salin selepas log masuk

Jawapan:

Menggunakan async/await dan .catch() bersama-sama boleh memberikan pengendalian ralat yang ringkas dan cekap dalam JavaScript. Inilah sebabnya:

Kod Padat:

Async/wait membenarkan sintaks yang berurutan, seperti segerak dalam kod tak segerak, manakala .catch() mengendalikan pengendalian ralat. Dengan menggabungkan kedua-duanya, anda boleh mencapai pengurusan ralat yang bersih dan padu tanpa memerlukan sekatan cuba/tangkap.

Contoh:

Pertimbangkan contoh berikut:

<code class="js">async function asyncTask() {
  throw new Error('network')
}

async function main() {
  const result = await asyncTask().catch(error => console.error(error));
  console.log('result:', result)
}

main();</code>
Salin selepas log masuk

Dalam kod ini, fungsi asyncTask melemparkan ralat rangkaian, yang dikendalikan dengan anggun oleh .catch() blok. Ralat dicetak ke konsol dan kod terus dilaksanakan tanpa menjejaskan fungsi utama.

Faedah:

Menggunakan async/await dan .catch() bersama-sama menawarkan beberapa kelebihan:

  • Kebolehbacaan yang lebih baik: Kod lebih mudah difahami, kerana sintaks async/waiit meniru pengaturcaraan segerak.
  • Pengendalian ralat yang dipermudahkan: Pengendalian ralat dipusatkan dalam blok .catch(), menyediakan pendekatan yang konsisten di seluruh pangkalan kod .
  • Peningkatan kecekapan: Async/tunggu dan .catch() memperkemas pengendalian ralat dengan menghapuskan keperluan untuk blok try/catch, mengurangkan jumlah kod boilerplate.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa mencampurkan async/menunggu dan .then() tidak perlu boleh memperkenalkan kerumitan yang tidak perlu dan potensi panggilan balik neraka. Oleh itu, biasanya disyorkan untuk menggunakan async/wait dan .catch() hanya apabila perlu.

Atas ialah kandungan terperinci Adakah berfaedah untuk mencampur async/menunggu dan .then() dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan