首頁 >web前端 >js教程 >如何處理異步AJAX呼叫回傳值?

如何處理異步AJAX呼叫回傳值?

Linda Hamilton
Linda Hamilton原創
2024-11-27 07:24:11339瀏覽

How Can I Handle Asynchronous AJAX Call Return Values?

非同步 AJAX 呼叫和變數返回

在非同步編程中,例如 AJAX 調用,從函數返回的變數並不立即可用,因為調用本身沒有立即執行。在 AJAX 呼叫的情況下,呼叫是非同步進行的,這表示它在背景執行,而其餘程式碼繼續運行。

您面臨的問題是提供的程式碼中的 get_data 函數嘗試直接傳回AJAX呼叫的結果。然而,由於呼叫是異步的,函數無法在返回之前等待結果。

解決方案:使用回呼

要解決此問題,應修改 get_data 函數以使用回呼功能。回調函數是作為參數傳遞給另一個函數並在第一個函數完成後執行的函數。

在修改後的程式碼中:

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);
        }
      }
    });
  }
}
  • get_data 函數現在接受一個附加參數回調,該函數將在 AJAX 呼叫完成後執行。
  • 在成功回呼中,回呼函數以 AJAX 呼叫的結果作為參數進行呼叫。

要使用回呼呼叫 get_data 函數:

get_data(data, destination, function(test) {
  notice(test);
});

在此範例中,是一個匿名回呼函數用於處理 AJAX 呼叫的結果。呼叫結果將傳遞給通知函數。

透過使用回調,get_data 函數可以發起 AJAX 呼叫並立即返回,而回調函數將在結果可用時執行。

以上是如何處理異步AJAX呼叫回傳值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn