Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Memastikan Panggilan Balik Dilaksanakan Selepas Semua Operasi Asynchronous dalam ForEach Gelung Selesai?

Bagaimana untuk Memastikan Panggilan Balik Dilaksanakan Selepas Semua Operasi Asynchronous dalam ForEach Gelung Selesai?

Linda Hamilton
Lepaskan: 2024-11-04 14:17:02
asal
1033 orang telah melayarinya

How to Ensure a Callback is Executed After All Asynchronous Operations in a forEach Loop Complete?

Asynchronous forEach Completion Callback

Masalah:

Cara untuk melaksanakan panggilan balik apabila semua operasi tak segerak dalam forEach gelung mempunyai selesai?

Penyelesaian:

1. Menggunakan Pembilang Mudah:

Mulakan item pembilangDiproses kepada 0. Naikkan pembilang dalam panggilan balik setiap fungsi tak segerak. Apabila itemProcessed mencapai jumlah panjang tatasusunan, panggil panggilan balik "semua selesai".

2. Menggunakan Janji ES6:

Buat tatasusunan objek Promise yang mewakili setiap operasi tak segerak menggunakan Promise.all. Apabila semua Janji telah selesai, panggilan balik terakhir akan dilaksanakan.

3. Menggunakan Pustaka Async:

Gunakan pustaka async seperti async untuk menyediakan mekanisme bagi menyatakan panggilan balik penyelesaian tak segerak.

Contoh Disemak (Kaedah Balas):

<code class="javascript">function callback() {
  console.log("All done!");
}

var itemsProcessed = 0;

[1, 2, 3].forEach((item, index, array) => {
  asyncFunction(item, () => {
    itemsProcessed++;
    if (itemsProcessed === array.length) {
      callback();
    }
  });
});</code>
Salin selepas log masuk

Semakan Output Jangkaan:

3 done
1 done
2 done
All done!
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Panggilan Balik Dilaksanakan Selepas Semua Operasi Asynchronous dalam ForEach Gelung Selesai?. 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