为什么我的Javascript功能无法正常工作?

时间:2014-09-07 21:04:43

标签: javascript

这是我的功能:

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.为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:2)

因为getJSON 异步。当您致电getJSON时,启动该流程,但会在完成后完成(并调用您的回调)。

出于同样的原因,您的isLoggedIn函数无法根据通过getJSON检索到的信息返回值。相反,您必须让isLoggedIn接受一个回调(或返回一个承诺),它会调用(或履行)getJSON调用的结果。