Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Melaksanakan Fungsi Panggilan Balik Selepas Pemprosesan Asynchronous dalam ForEach Gelung?

Bagaimana untuk Melaksanakan Fungsi Panggilan Balik Selepas Pemprosesan Asynchronous dalam ForEach Gelung?

Susan Sarandon
Lepaskan: 2024-11-04 15:10:02
asal
255 orang telah melayarinya

How to Execute a Callback Function After Asynchronous Processing within a ForEach Loop?

Penyelesaian Panggilan Balik Selepas Pemprosesan Lelaran Tak Segerak

Pernyataan Masalah:

Memandangkan pelbagai elemen, bagaimana kita boleh menggunakan fungsi panggil balik selepas semua pemprosesan tak segerak dalam gelung forEach selesai?

Penyelesaian 1: Pendekatan Berasaskan Balas

  • Naikkan pembilang dalam setiap panggilan balik tak segerak.
  • Laksanakan panggilan balik "selesai" apabila kaunter mencapai jumlah bilangan elemen.
<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

Penyelesaian 2: Pendekatan Berasaskan Janji

Pelaksanaan Segerak:

  • Janji janji menggunakan reduce() dan Promise.resolve() untuk menjamin pelaksanaan segerak.
<code class="javascript">let requests = [1, 2, 3].reduce((promiseChain, item) => {
  return promiseChain.then(() => new Promise((resolve) => {
    asyncFunction(item, resolve);
  }));
}, Promise.resolve());

requests.then(() => console.log('done'));</code>
Salin selepas log masuk

Pelaksanaan Asynchronous:

  • Buat tatasusunan janji menggunakan map().
  • Gunakan Promise.all() untuk memanggil panggilan balik "selesai" apabila semua janji telah diselesaikan.
<code class="javascript">let requests = [1, 2, 3].map((item) => {
  return new Promise((resolve) => {
    asyncFunction(item, resolve);
  });
});

Promise.all(requests).then(() => console.log('done'));</code>
Salin selepas log masuk

Penyelesaian 3: Penggunaan Pustaka Async

  • Gunakan perpustakaan seperti async untuk memudahkan corak pengaturcaraan tak segerak.
  • Rujuk dokumentasi khusus untuk mekanisme penyelesaian panggilan balik yang disediakan oleh perpustakaan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fungsi Panggilan Balik Selepas Pemprosesan Asynchronous dalam ForEach Gelung?. 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