Soalan:
Pertimbangkan kod berikut di mana senarai tugas tertunda dibuat:
var deferreds = getSomeDeferredStuff(); $.when(deferreds).done(function() { console.log("All done!") });
Walau bagaimanapun, "Semua selesai!" dilog sebelum semua tugas tertunda selesai. Bagaimanakah anda boleh menghantar tatasusunan penangguhan ke dalam $.when() dan memastikan ia menunggu sehingga semua tugasan selesai?
Jawapan:
Untuk lulus tatasusunan nilai kepada fungsi yang menjangkakan parameter yang berasingan, gunakan Function.prototype.apply:
$.when.apply($, deferreds).then(function() { console.log("All done!") });
Berikut ialah pecahan kod:
Sebagai alternatif, dalam ES6 dan lebih baharu, anda boleh menggunakan operator spread:
$.when(...deferreds).then(function() { console.log("All done!") });
Dalam mana-mana kes, pengendali akan menerima pelbagai keputusan, satu untuk setiap tertunda. Proses tatasusunan ini untuk mendapatkan nilai yang anda perlukan.
Atas ialah kandungan terperinci Bagaimana untuk Memastikan $.when() Menunggu Semua Tugas Tertunda dalam Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!