Rumah >hujung hadapan web >tutorial js >Menunggu `Promise.all()` lwn. Berbilang `menunggu`: Bila Untuk Menggunakan Yang Mana?

Menunggu `Promise.all()` lwn. Berbilang `menunggu`: Bila Untuk Menggunakan Yang Mana?

Susan Sarandon
Susan Sarandonasal
2024-12-01 00:45:11238semak imbas

Await `Promise.all()` vs. Multiple `await`: When to Use Which?

Await Promise.all() vs. Multiple Await

Dalam pengaturcaraan tak segerak, membuat keputusan antara menggunakan await Promise.all() dan berbilang menunggu kenyataan boleh mempengaruhi masa pelaksanaan dan pengendalian ralat. Berikut ialah perbandingan perbezaan utama mereka.

Contoh 1: Masa Pelaksanaan

Menggunakan Promise.all() untuk melaksanakan tugas secara serentak boleh menghasilkan penyelesaian yang lebih cepat daripada menunggu tugasan secara berurutan:

let data = await Promise.all([task1(), task2(), task3()]);

// ms ------1---------2---------3---------4---------5
// =============================O task 1
// ====================O           task 2
// =========O                     task 3
//
// =============================O Promise.all

Contoh 2: Pengendalian Ralat

Promise.all() berkelakuan berbeza berbanding kenyataan menunggu berbilang semasa mengendalikan ralat:

  • Promise.all( [tugas1(), task2() ] ): Jika mana-mana tugas dalam tatasusunan menolak, janji Promise.all() akan menolak serta-merta dengan objek ralat agregat mengandungi semua ralat yang dihadapi.
  • const t1 = task1(); const t2 = tugas2(); const r1 = tunggu t1; const r2 = tunggu t2;: Jika task1() menolak, pelaksanaan akan diteruskan ke baris seterusnya, di mana menunggu t2; akan dilaksanakan; jika task2() juga menolak, hanya penolakan itu akan diteruskan sebagai pengecualian yang tidak dikendalikan.

Ringkasnya, Promise.all() menyediakan pelaksanaan serentak tetapi gagal awal pada sebarang penolakan, sementara berbilang menunggu kenyataan laksanakan tugas secara berurutan, membolehkan pengendalian ralat individu. Pilih dengan bijak berdasarkan keperluan khusus permohonan anda.

Atas ialah kandungan terperinci Menunggu `Promise.all()` lwn. Berbilang `menunggu`: Bila Untuk Menggunakan Yang Mana?. 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