Asynchronous forEach Callback: Melaksanakan Panggilan Balik Selesai
Dalam senario di mana gelung tak segerak seperti forEach digunakan, keperluan sering timbul untuk mencetuskan panggil balik setelah semua operasi tak segerak selesai. Panduan ini membentangkan beberapa pendekatan untuk mencapai fungsi ini.
1. Menggunakan Pembilang Mudah
Teknik ini menggunakan pembilang yang bertambah setiap kali item diproses. Apabila kaunter mencapai jumlah bilangan item, panggilan balik penyelesaian akan dipanggil.
function callback () { console.log('all done'); } var itemsProcessed = 0; [1, 2, 3].forEach((item, index, array) => { asyncFunction(item, () => { itemsProcessed++; if(itemsProcessed === array.length) { callback(); } }); });
2. Memanfaatkan Janji ES6
Janji membolehkan penciptaan rantai janji berurutan, memastikan pelaksanaan segerak bagi tugas tak segerak.
function asyncFunction (item, cb) { setTimeout(() => { console.log('done with', item); cb(); }, 100); } let requests = [1, 2, 3].reduce((promiseChain, item) => { return promiseChain.then(() => new Promise((resolve) => { asyncFunction(item, resolve); })); }, Promise.resolve()); requests.then(() => console.log('done'))
3. Menggunakan Perpustakaan Asynchronous
Perpustakaan seperti "async" menyediakan mekanisme untuk menyatakan fungsi yang diingini. Pelaksanaan khusus akan berbeza-beza bergantung pada perpustakaan yang dipilih.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Panggilan Balik Selesai untuk Asynchronous forEach Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!