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

Bagaimanakah Saya Boleh Mengakses Nilai Pulangan Panggilan AJAX Asynchronous?

DDD
Lepaskan: 2024-11-25 08:20:10
asal
548 orang telah melayarinya

How Can I Access the Return Value of an Asynchronous AJAX Call?

Panggilan AJAX Asynchronous and Variable Return

Dalam konteks membahagikan kod rangka kerja anda kepada fail berasingan, anda menghadapi isu di mana pengembalian nilai fungsi yang dipanggil melalui AJAX tidak boleh diakses. Kekeliruan ini berpunca daripada sifat tak segerak bagi panggilan AJAX.

Panggilan AJAX: Asynchronity Explained

Fungsi AJAX (Asynchronous JavaScript and XML) beroperasi secara tak segerak. Ini bermakna apabila permintaan AJAX dibuat, fungsi yang membuat permintaan itu tidak menunggu respons selesai sebelum meneruskan pelaksanaan. Ini membenarkan bahagian lain program untuk terus berjalan selari semasa permintaan AJAX sedang dijalankan.

Fungsi Pulangan dan AJAX

Dalam kes fungsi get_data anda, penyataan pulangan dalam fungsi panggil balik kejayaan tidak segera dilaksanakan apabila fungsi dipanggil. Sebaliknya, ia dilaksanakan hanya apabila permintaan AJAX selesai, dan respons telah diterima.

Penyelesaian: Menggunakan Panggilan Balik

Untuk menyelesaikan isu ini, anda harus menyediakan fungsi panggil balik kepada fungsi get_data. Panggilan balik ini akan dilaksanakan apabila permintaan AJAX selesai, dan data respons tersedia. Kod yang diubah suai akan kelihatan seperti ini:

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

Kod panggilan kemudiannya akan diubah suai untuk dihantar dalam fungsi panggil balik:

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

Dengan cara ini, data respons boleh dikendalikan dalam fungsi panggil balik apabila permintaan AJAX selesai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan