Rumah > hujung hadapan web > tutorial js > Perbezaan penggunaan async / await vs promises?

Perbezaan penggunaan async / await vs promises?

Susan Sarandon
Lepaskan: 2025-01-27 14:32:09
asal
618 orang telah melayarinya

JavaScript Operasi Asynchronous: Janji dan Async/Tunggu Penjelasan Terperinci

Janji dan async/menunggu adalah dua cara untuk JavaScript memproses operasi tak segerak. Artikel ini akan menjelaskan perbezaan, kelebihan dan senario yang berkenaan.

Janji

    Definisi:
  1. Objek Janji mewakili penyelesaian akhir (atau kegagalan) dan nilai hasil operasi tak segerak. tatabahasa:
  2. Ciri -ciri Utama:
const fetchData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("数据已获取");
    }, 1000);
  });
};

fetchData()
  .then((data) => console.log(data))
  .catch((error) => console.error(error));
Salin selepas log masuk
  1. Gunakan <理> untuk mengendalikan hasil yang berjaya.
  2. Gunakan <理> untuk menangani kesilapan.
    anda boleh menggunakan <链> panggilan rantaian pelbagai operasi asynchronous.
  • .then()
  • <势> Kelebihan: .catch()
  • .then()
  • lebih baik daripada panggilan balik neraka (
panggilan rantaian lebih jelas daripada menetapkan panggilan balik ke belakang).
  1. Gunakan <明> untuk kesilapan yang jelas.
<挑> cabaran:
  • .then()
  • Apabila banyak janji diproses, panggilan rantai mungkin masih sukar dibaca (dipanggil "janji neraka"). .catch()
  • Apabila memanggil pelbagai
dalam rantai, rawatan ralat mungkin memerlukan perhatian tambahan.
  1. async/menunggu
    <义> Definisi:
  • Async/menunggu berdasarkan gula sintaks Janji, menjadikan kod tak segerak kelihatan lebih seperti kod segerak.
  • <法> tatabahasa: .then()

<键> Ciri -ciri Utama:

  1. Gunakan kata kunci <键> untuk mengisytiharkan fungsi janji. Gunakan <暂> untuk menggantung pelaksanaan sehingga janji selesai.
  2. Gunakan <理> untuk menangani kesilapan.
<势> Kelebihan:
const fetchData = async () => {
  try {
    const data = await new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve("数据已获取");
      }, 1000);
    });
    console.log(data);
  } catch (error) {
    console.error(error);
  }
};

fetchData();
Salin selepas log masuk
  1. Pembacaan kod: Berbanding dengan panggilan rantaian
  2. , tatabahasa lebih jelas dan mudah difahami.
    Mudah untuk debug: Alat penyahpepijatan membolehkan anda melaksanakan kod async/menunggu satu -langkah seperti kod penyegerakan.
  • async Ia digunakan untuk kesilapan berpusat.
  • await
  • cabaran:
  • try...catch
    Ia mesti digunakan dalam fungsi pernyataan .
  1. Jika ia tidak dikendalikan dalam peredaran atau urutan panggilan tak segerak, ia kadang -kadang boleh membawa kepada halangan.
  • .then()
  • bila hendak menggunakan
  • Janji: try...catch
    digunakan untuk operasi asynchronous yang mudah pakai.
  1. Apabila menggunakan perpustakaan atau API yang direka di sekitar janji.
  2. Apabila rantaian memanggil pelbagai operasi yang tidak relevan.
    async/menunggu:
  • async
  • Ia digunakan untuk mempunyai pelbagai aliran kerja kompleks yang bergantung kepada operasi tak segerak.
apabila anda memerlukan kod yang lebih jelas dan mudah.

Apabila debugging adalah penting. Difference of using async / await vs promises?


gabungan

boleh digunakan dalam kombinasi dengan async/menunggu dan berjanji untuk mencapai kes penggunaan lanjutan:

Atas ialah kandungan terperinci Perbezaan penggunaan async / await vs promises?. 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