非同步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中文網其他相關文章!