Javascript 如何从异步回调函数中更新全局变量?

Javascript 如何从异步回调函数中更新全局变量?,javascript,asynchronous,global-variables,Javascript,Asynchronous,Global Variables,我有一个问题,无法从回调函数内部更新全局变量 这是我的密码: // 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, f

我有一个问题,无法从回调函数内部更新全局变量

这是我的密码:

// 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没有为您提供太多的配置可能性。查看使用jQuery执行同步请求的问题和答案