Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengendalikan Nilai Pulangan Panggilan AJAX Asynchronous?

Bagaimanakah Saya Boleh Mengendalikan Nilai Pulangan Panggilan AJAX Asynchronous?

Linda Hamilton
Lepaskan: 2024-11-27 07:24:11
asal
371 orang telah melayarinya

How Can I Handle Asynchronous AJAX Call Return Values?

Panggilan AJAX Tak Segerak dan Pulangan Pembolehubah

Dalam pengaturcaraan tak segerak, seperti dengan panggilan AJAX, pembolehubah yang dikembalikan daripada fungsi tidak tersedia serta-merta kerana panggilan itu sendiri tidak dilaksanakan serta merta. Dalam kes panggilan AJAX, panggilan dibuat secara tidak segerak, bermakna ia dilaksanakan di latar belakang manakala kod yang selebihnya terus dijalankan.

Isu yang anda hadapi ialah fungsi get_data dalam kod yang disediakan cuba untuk mengembalikan hasil panggilan AJAX secara langsung. Walau bagaimanapun, kerana panggilan tidak segerak, fungsi tidak boleh menunggu keputusan sebelum ia kembali.

Penyelesaian: Menggunakan Panggilan Balik

Untuk menyelesaikan isu ini, fungsi get_data harus diubah suai untuk menggunakan panggilan balik fungsi. Fungsi panggil balik ialah fungsi yang dihantar ke fungsi lain sebagai hujah dan dilaksanakan kemudian, selepas fungsi pertama selesai.

Dalam kod yang disemak:

function get_data(data, destination, callback) {
  if (lock_get == 0) {
    lock_get = 1;
    $.ajax({
      type: "POST",
      url: destination,
      async: true,
      data: data,
      success: function(data) {
        lock_get = 0;
        if (data && callback) {
          callback(data);
        }
      }
    });
  }
}
Salin selepas log masuk
  • Fungsi get_data kini menerima parameter tambahan, panggilan balik, yang merupakan fungsi yang akan dilaksanakan selepas panggilan AJAX mempunyai selesai.
  • Di dalam panggilan balik kejayaan, fungsi panggil balik dipanggil dengan hasil panggilan AJAX sebagai argumen.

Untuk memanggil fungsi get_data dengan panggilan balik:

get_data(data, destination, function(test) {
  notice(test);
});
Salin selepas log masuk

Dalam contoh ini, fungsi panggil balik tanpa nama digunakan untuk mengendalikan hasil panggilan AJAX. Hasil panggilan akan dihantar ke fungsi notis.

Dengan menggunakan panggilan balik, fungsi get_data boleh memulakan panggilan AJAX dan kembali serta-merta, manakala fungsi panggil balik akan dilaksanakan kemudian apabila hasilnya tersedia.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Nilai Pulangan Panggilan AJAX Asynchronous?. 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