我正在向托管我的HTML文件的Web服务器发送一个发布命令,并且正在使用jquery这样做。

当我尝试使用alert()读取全局变量时,它表示为0,但在returnData函数中,它给出了服务器返回的内容。

<script src = "jquery.js"></script>
<script>

var faces = 0;

postList()

alert(window.faces) //gives me 0

//function with the post command
function postList(){
  $.post("/",{command : "2"},returnData);
}

function returnData(returnData,status){
  //try to save the data
  window.faces = returnData;
  alert(window.faces); //gives me the data from the server
}

</script>

最佳答案

HTTP请求是异步操作,因此将在所有同步代码之后进行处理。了解有关JavaScript事件循环的更多信息。但通常,JavaScript会将变量值设置为0,然后使用postList()发出HTTP请求,该请求仅在其余同步代码(包含alert())之后才调用returnData(),因此在调用alert()时)的值将为0。

关于javascript - 无法通过发布函数编辑全局变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59255623/

10-11 12:26