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

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

Barbara Streisand
Barbara Streisandasal
2024-11-02 07:57:02795semak imbas

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;
  }

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>

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:
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