基本上我有
correctData = false//global variable
function calledFirst()
{
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
proceedDiv.innerHTML = xmlhttp.responseText
if(xmlhttp.responseText == "You may continue.")
correctData = true
else
correctData = false
}
}
xmlhttp.open("GET", "process.php?proposed="+encodeURIComponent(mon2),true);
xmlhttp.send()
calledSecond()
}
function calledSecond()
{
if(!correctData)
{
//uh-oh
它似乎calledSecond()
在 Ajax 响应完成之前被调用,这是一个问题,因为correctData
' 的值取决于 Ajax 响应并且 calleSecond 使用它。我怎样才能解决这个问题?
更新:如果我将函数调用放在回调部分,每个人都是对的,但为什么它会起作用?您刚刚说服我它不起作用,因为 Ajax 是异步的,因此其余代码不会等待 Ajax 完成,那么为什么将其移至回调部分解决此问题?