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

如何取得異步AJAX呼叫的回傳值?

DDD
發布: 2024-11-25 08:20:10
原創
578 人瀏覽過

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

非同步AJAX 呼叫和變數回傳

在將框架程式碼分割為單獨的檔案的情況下,您遇到了以下問題:返回透過AJAX 呼叫的函數的值無法存取。這種混亂源自於 AJAX 呼叫的非同步性質。

AJAX 呼叫:非同步性解釋

AJAX(非同步 JavaScript 和 XML)函數非同步操作。這表示當發出 AJAX 請求時,發出請求的函數不會等待回應完成就繼續執行。這允許程式的其他部分在 AJAX 請求正在進行時繼續並行運行。

函數傳回和 AJAX

對於 get_data 函數,當呼叫成功回呼函數時,不會立即執行成功回呼函數中的 return 語句。相反,它僅在 AJAX 請求完成並且已收到回應時執行。

解決方案:使用回呼

要解決此問題,您應該提供get_data 函數的回呼函數。當 AJAX 請求完成且回應資料可用時,將執行此回呼。修改後的程式碼如下所示:

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(data, destination, function (test) {
  notice(test);
});
登入後複製

這樣,可以在AJAX請求完成時的回呼函數。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板