簡體   English   中英

如何從異步回調函數中更新全局變量?

[英]How to update global variable from within a async callback function?

我有一個問題,我無法從回調函數內部更新全局變量。

這是我的代碼:

// Set global variable.
var load_values_from_server = "initial value";

// Call our page that shows server load and put it into "results" variable.
microAjax("http://domain.com/show-server-load.php?" + randomnumber, 
 function (results) { 
    load_values_from_server = results; 
 });

// We want this to show the "results" from the callback function.
alert(load_values_from_server);

問題在於警報始終顯示“初始值”,而從未顯示回調函數的“結果”。

我想念什么? 即使在回調函數中,全局變量也不應該是全局變量嗎?

您的代碼正在更新全局變量。 設置值的函數在代碼中的alert語句之后調用。 JavaScript代碼不等待microAjax調用的執行結果。 要檢查microAjax方法是否成功返回,請在分配后放置alert方法:

var load_values_from_server = "initial value";

microAjax("http://domain.com/show-server-load.php?" + randomnumber, 
  function (results) { 
    load_values_from_server = results;            
    alert(load_values_from_server); 
  });

microAjax不會給您太多配置可能性。 查看這個 SO問題和對使用jQuery的同步請求的回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM