Rumah > hujung hadapan web > tutorial js > Bila dan Mengapa Kita Perlu Menggabungkan async/menunggu dengan .then() dalam JavaScript?

Bila dan Mengapa Kita Perlu Menggabungkan async/menunggu dengan .then() dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-11-03 11:45:29
asal
1057 orang telah melayarinya

When and Why Should We Combine async/await with .then() in JavaScript?

Menggabungkan Async/Await dan .then() dengan Promise Conversions

Dalam JavaScript, async/wait ialah mekanisme berkuasa untuk mengendalikan operasi tak segerak . Walau bagaimanapun, terdapat situasi yang mungkin sesuai untuk menggabungkan async/menunggu dengan .then(), terutamanya apabila menukar Promises kepada fungsi async.

Pertimbangkan contoh berikut:

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

Di sini , kaedah anotherCall() mengembalikan Janji, yang ditukar menjadi fungsi tak segerak menggunakan .then().catch(). Ini membolehkan kami melakukan apa-apa transformasi atau pengendalian ralat yang diperlukan sebelum mengembalikan keputusan.

Sesetengah pembangun lebih suka menggunakan async/await dengan .catch() dan bukannya try/catch untuk kekompakannya. Contohnya:

<code class="javascript">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 contoh ini, fungsi asyncTask() melemparkan ralat, yang ditangkap oleh kaedah .catch() dalam panggilan tunggu. Ini menghalang ralat daripada disebarkan dan membolehkan kami mengendalikannya dengan anggun dalam fungsi main().

Perlu ambil perhatian bahawa kaedah .then() mencipta dan mengembalikan Promise baharu, walaupun Promise asal dikembalikan oleh anotherCall() sudah diselesaikan. Tingkah laku ini boleh membawa kepada kesan sampingan yang tidak dijangka, terutamanya jika berbilang Janji dirantai bersama menggunakan .then().

Atas ialah kandungan terperinci Bila dan Mengapa Kita Perlu Menggabungkan async/menunggu dengan .then() dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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