Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Merangkai Tiga Panggilan Asynchronous Secara Berurutan dengan Janji jQuery?

Bagaimana untuk Merangkai Tiga Panggilan Asynchronous Secara Berurutan dengan Janji jQuery?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 08:20:30783semak imbas

How to Chain Three Asynchronous Calls Sequentially with jQuery Promises?

Merangkai Tiga Panggilan Tak Segerak dengan Janji jQuery

Anda mempunyai tiga panggilan HTTP tak segerak yang perlu anda laksanakan mengikut urutan, menghantar data daripada satu panggilan ke seterusnya. Kod yang disediakan menggunakan objek tertunda untuk dua fungsi tetapi memerlukan sambungan untuk tiga fungsi.

Dalam setiap kes, kembalikan objek jqXHR yang dihasilkan oleh $.ajax(). Objek ini serasi dengan Promise, membenarkan rantaian dengan .then()/.done()/.fail()/.always(). Untuk senario ini, .then() adalah sesuai.

<code class="javascript">function first() {
   return $.ajax(...);
}

function second(data, textStatus, jqXHR) {
   return $.ajax(...);
}

function third(data, textStatus, jqXHR) {
   return $.ajax(...);
}</code>

Dalam fungsi 'utama', rantaikan fungsi bersama-sama menggunakan .then().

<code class="javascript">function main() {
    first().then(second).then(third);
}</code>

Data argumen, textStatus, dan jqXHR berasal daripada seruan $.ajax() dalam fungsi sebelumnya. Dalam erti kata lain, first() membekalkan second(), dan second() membekalkan third().

(Untuk ilustrasi, gunakan $.when('foo') untuk menghasilkan janji yang dipenuhi sebagai ganti $. ajax(...)).

Atas ialah kandungan terperinci Bagaimana untuk Merangkai Tiga Panggilan Asynchronous Secara Berurutan dengan Janji jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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