当尝试从ajax回调函数设置变量时,我得到了不可预知的结果:
var logged_in=false;
function check_response(response,el) {
logged_in=true;
alert(logged_in); //outputs TRUE
}
makePOSTRequest("/is_logged.php", check_response); //when ready call check_response() with the XML response
alert(logged_in); //first time outputs FALSE;
alert(logged_in); //second time outputs TRUE;
你知道为什么会发生这种奇怪的行为吗?
答案 0 :(得分:1)
因为“makePOSTRequest”是异步的,所以该方法之后的第一个“alert”显示“false”,因为这是先前设置的变量的默认值,并且当你调用alert时,你实际上是“阻止”执行第二个警报,到那时请求结束,“logged_in”设置为true。
答案 1 :(得分:0)
当传递0或1代替真或假时,问题是否相同?