这是我的功能:
function isLoggedIn(){
$newuid = uid;
alert("1");
if(uid == null){return false;}
$.getJSON("login.jsp",{uname: uname, upass : upass},function(data){
alert("2");
$newuid = data.uid;
});
alert("3");
return $newuid == uid;
}
它会提醒1然后是3然后2.为什么会这样,我该如何解决?
答案 0 :(得分:2)
因为getJSON
异步。当您致电getJSON
时,启动该流程,但会在完成后完成(并调用您的回调)。
出于同样的原因,您的isLoggedIn
函数无法根据通过getJSON
检索到的信息返回值。相反,您必须让isLoggedIn
接受一个回调(或返回一个承诺),它会调用(或履行)getJSON
调用的结果。