Bagaimanakah Saya Boleh Melaksanakan Fungsi Async secara Selari dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-11-24 03:35:10
asal
379 orang telah melayarinya

How Can I Execute Async Functions in Parallel in JavaScript?

Melaksanakan Fungsi Async secara Selari

Dalam ES7/ES2016, pelaksanaan berurutan bagi ekspresi menunggu ialah tingkah laku lalai, sama seperti merantai janji dengan . kemudian(). Walau bagaimanapun, untuk melakukan panggilan tak segerak secara selari, terdapat pendekatan alternatif.

Pelaksanaan Selari dengan Promise.all()

Satu penyelesaian yang elegan ialah menggunakan Promise.all( ). Kaedah ini mengambil pelbagai janji dan mengembalikan satu janji yang diselesaikan kepada pelbagai hasil:

await Promise.all([someCall(), anotherCall()]);
Salin selepas log masuk

Untuk menyimpan hasil individu, anda boleh memusnahkan nilai pulangan kepada pembolehubah:

let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
Salin selepas log masuk

Kaveat: Tangani Penolakan dengan catch()

Perhatikan bahawa Promise.all() melaksanakan semantik "fail fast". Ini bermakna jika mana-mana satu daripada janji input menolak, keseluruhan operasi akan menolak dengan ralat daripada janji yang gagal. Untuk menangkap dan mengendalikan kemungkinan ralat, gunakan kaedah .catch().

Contohnya:

Promise.all([happy('happy', 100), sad('sad', 50)])
  .then(console.log).catch(console.log); // Logs 'sad'
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Fungsi Async secara Selari 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