Rumah >hujung hadapan web >tutorial js >Mengapa Pilih `return await promise` daripada `return promise` dalam JavaScript?

Mengapa Pilih `return await promise` daripada `return promise` dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-18 07:57:02254semak imbas

Why Choose `return await promise` over `return promise` in JavaScript?

kembali menanti janji vs. mengembalikan janji dalam JavaScript: Perbezaan Tingkah Laku

Pengenalan

Bila bekerja dengan kod tak segerak dalam JavaScript, pembangun sering menggunakan mekanisme async/menunggu untuk mengurus Janji. Walau bagaimanapun, terdapat dua variasi yang perlu dipertimbangkan semasa mengembalikan Janji dalam fungsi tak segerak: kembali menunggu janji dan janji kembali. Artikel ini menyelidiki nuansa antara pendekatan ini.

Perbezaan Tingkah Laku

Dalam kebanyakan kes, tiada perbezaan ketara antara pulangan menunggu janji dan janji pulangan. Kedua-duanya akan menghasilkan Janji yang menyelesaikan atau menolak, memberikan kelakuan yang boleh diperhatikan yang sama.

Walau bagaimanapun, perbezaan menjadi jelas apabila menggunakan blok cuba-tangkap. Pertimbangkan contoh ini:

async function rejectionWithReturnAwait() {
  try {
    return await Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}

Dalam kes ini, pemulangan menunggu memastikan Janji yang ditolak ditangkap dalam fungsi async, membenarkan klausa tangkapan dilaksanakan dan mengembalikan Janji yang diselesaikan kepada "Disimpan!".

async function rejectionWithReturn() {
  try {
    return Promise.reject(new Error());
  } catch (e) {
    return 'Saved!';
  }
}

Sebaliknya, return promise mengembalikan Promise yang ditolak terus tanpa menunggunya dalam fungsi async. Ini bermakna penolakan tidak ditangkap oleh klausa tangkapan, dan pemanggil menerima penolakan sebaliknya.

Implikasi

Pilihan antara janji pulang menunggu dan janji pulangan bergantung pada tingkah laku yang diingini. Jika pengendalian ralat dalam fungsi async adalah penting, janji pulangan menunggu harus digunakan untuk memastikan ralat ditangkap dan dikendalikan dengan sewajarnya. Jika tidak, janji pulangan boleh digunakan untuk mengoptimumkan prestasi dengan mengelakkan sarang yang tidak perlu.

Atas ialah kandungan terperinci Mengapa Pilih `return await promise` daripada `return promise` 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