Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Melepasi Tatasusunan Objek Tertunda ke `$.when()` jQuery?

Bagaimanakah Saya Boleh Melepasi Tatasusunan Objek Tertunda ke `$.when()` jQuery?

Mary-Kate Olsen
Lepaskan: 2024-12-09 21:57:13
asal
632 orang telah melayarinya

How Can I Pass an Array of Deferred Objects to jQuery's `$.when()`?

Lepaskan Tatasusunan Tertunda kepada $.when()

Apabila berurusan dengan set tugas tak segerak yang kompleks, ia boleh menjadi mudah untuk lulus tatasusunan objek Tertunda kepada kaedah $.when() untuk memberitahu apabila semua tugas telah selesai. Walau bagaimanapun, secara lalai, $.when() menjangkakan objek Tertunda yang berasingan sebagai parameter individu, yang boleh menjadi tidak praktikal jika bilangan objek Tertunda tidak diketahui. Artikel ini menyediakan penyelesaian kepada isu ini menggunakan Function.prototype.apply.

Penyelesaian:

Untuk menghantar tatasusunan objek Tertunda kepada $.when(), gunakan kaedah Function.prototype.apply seperti berikut:

$.when.apply($, my_array).then( ___ );
Salin selepas log masuk

Ini membolehkan anda menghantar tatasusunan objek Tertunda sebagai hujah tunggal kepada $.when(). Kod contoh di bawah menunjukkan pendekatan ini:

var deferreds = getSomeDeferredStuff();
$.when.apply($, deferreds).done(function() {
    $("div").append("<p>All done!</p>");
});
Salin selepas log masuk

ES6:

Dalam ES6, anda boleh menggunakan operator spread (...) dan bukannya Function.prototype.apply:

$.when(...my_array).then( ___ );
Salin selepas log masuk

Nota:

Adalah penting untuk ambil perhatian bahawa fungsi pengendali yang diberikan kepada kaedah .then() harus memproses tatasusunan argumen untuk mendapatkan semula keputusan setiap janji. Memandangkan bilangan parameter formal yang diperlukan oleh pengendali mungkin tidak diketahui terlebih dahulu, pengendali mesti memproses tatasusunan argumen dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melepasi Tatasusunan Objek Tertunda ke `$.when()` jQuery?. 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