Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menjalankan Operasi Asynchronous Secara serentak dalam JavaScript dengan Pengendalian Ralat yang Betul?

Bagaimanakah Saya Boleh Menjalankan Operasi Asynchronous Secara serentak dalam JavaScript dengan Pengendalian Ralat yang Betul?

Barbara Streisand
Barbara Streisandasal
2024-12-10 00:22:11250semak imbas

How Can I Run Asynchronous Operations Concurrently in JavaScript with Proper Error Handling?

Pelaksanaan Operasi Menunggu Serentak

Coretan kod yang dipersoalkan menghadapi isu semasa melakukan operasi tak segerak:

nilai const1 = menanti getValue1Async();
const value2 = menunggu getValue2Async();

Pelaksanaan ini secara berurutan menunggu penyiapan setiap operasi sebelum memulakan operasi seterusnya. Untuk mendayakan pelaksanaan serentak, pendekatan yang diubah suai diperlukan.

Penguraian Janji dan Menunggu Terpisah

Penyelesaian pertama yang dikemukakan cuba untuk menangani perkara ini dengan mendapatkan janji untuk setiap operasi, kemudian menunggunya secara berasingan:


const p1 = getValue1Async();
const p2 = getValue2Async();
const value1 = tunggu p1;
const value2 = tunggu p2;

Sementara kaedah ini melakukannya jalankan kedua-dua operasi secara selari, ia tidak mengendalikan penolakan dengan betul jika kedua-dua janji menolak. Ia juga menunggu operasi pertama selesai sebelum memulakan operasi kedua, yang tidak cekap.

Promise.all Solution

Untuk menyelesaikan isu ini, fungsi Promise.all boleh digunakan:


const [nilai1, nilai2] = menunggu Promise.all([getValue1Async(), getValue2Async()]);

Promise.all mengambil pelbagai janji dan mengembalikan satu janji yang diselesaikan apabila semua input berjanji telah diselesaikan atau ditolak. Pendekatan ini menawarkan beberapa kelebihan:

  • Concurrency: Operasi akan dilaksanakan serentak tanpa menunggu yang pertama selesai.
  • Pengendalian Penolakan: Sebarang penolakan akan diuruskan dengan betul, dan janji yang terhasil akan ditolak dengan yang sesuai ralat.
  • Kesederhanaan: Sintaks adalah ringkas dan boleh dibaca.

TL;DR

Ringkasnya, untuk melaksanakan operasi tak segerak serentak dengan pengendalian penolakan yang betul, gunakan Promise.all:

<br>const [value1, value2] = menunggu Promise.all([getValue1Async(), getValue2Async()]);<br>

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Operasi Asynchronous Secara serentak dalam JavaScript dengan Pengendalian Ralat yang Betul?. 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