Javascript 如何更改jquery get方法中的全局变量?

Javascript 如何更改jquery get方法中的全局变量?,javascript,jquery,get,xmlhttprequest,return,Javascript,Jquery,Get,Xmlhttprequest,Return,我对js并不陌生,但jQueryGet方法有一个愚蠢的问题,它不能更改全局变量,我不知道为什么 function getData(data) { re=null; $.get("http://example.com/api.php",{ d:data}).done(function(result){ re = true; }).fail(function(){ re = false; });

我对js并不陌生,但jQueryGet方法有一个愚蠢的问题,它不能更改全局变量,我不知道为什么

function getData(data) {
    re=null;
    $.get("http://example.com/api.php",{ d:data}).done(function(result){

            re = true;

        }).fail(function(){

            re = false;

        });
        console.log(re);
        return re;
}
如果您看到
控制台
,它仍然是
空的

有什么想法吗

更新:

我的问题不在于console.log(),实际上问题在于我不能像这样存储和返回值:

alert(getData(data));

这仍然返回null。

这是因为$.get是一个异步调用,在重新分配re变量一个新值时,console.log正在执行

调用异步函数getData(data)时,可以使用回调函数


我希望这能有所帮助。

这是因为在调用
console.log
时,
get
调用尚未完成。您必须将
console.log
放入
done
fail
回调中。ajax是异步的,您可以将console.log(re)放入done或fail中callback@xianshenglu我想返回您不能返回的值,因为AJAX调用是异步的。您需要改用回调模式。更多信息,请参见我标记的副本information@RoryMcCrossan感谢您提到另一个问题,但我认为我的问题有点不同,我想将
callback()
的结果存储在一个全局变量中,如
re
。你能帮我吗?或者重新打开问题来更新它?这不是答案。您只需解释问题谢谢您的回答,但这与放置
console.log()
而不是
callback()
相同。您能告诉我如何将
响应
存储在像
re
这样的全局变量中吗?
function getData(data,callback) {
$.get("http://example.com/api.php",{ d:data}).done(function(result){

        callback(true)

    }).fail(function(){

        callback(false);

    });
}
//call it with your data and callback function
getData(data, function(response){
     console.log(response); // this will contain true or false as returned from your getData function.
})