Javascript 在$.Get()jQuery之后从函数中获取全局变量

Javascript 在$.Get()jQuery之后从函数中获取全局变量,javascript,jquery,Javascript,Jquery,我有这个密码 var base_url = 'http://api.zxc.loc'; var questions = []; function get_question(){ if(!questions.lenght){ $.get(base_url + '/api/questions', function(data){ questions = data; console.log('get_question', que

我有这个密码

var base_url = 'http://api.zxc.loc';
var questions = []; 

function get_question(){
    if(!questions.lenght){
        $.get(base_url + '/api/questions', function(data){
            questions = data;
            console.log('get_question', questions); // GOOD, return [Object, Object ... etc ... ]
        }, 'json')
    } 
    console.log('get_question_2', questions); // BAD return empty array []

    /* var question = questions[0];
    delete questions[0];
    return question; */
}
您可以看到,在$.get
questions
变量中不为空,但在$.get之后,
questions
为空


为什么??谢谢

这就是AJAX的工作原理。在您的代码中,将在
获取问题
之前记录
获取问题
。一旦进行了ajax调用,代码就会通过它(以
get\u question\u 2
)。然后返回一个ajax调用,将执行函数中的代码(即
get\u question


总之,一旦ajax调用完成,在ajax调用返回数据之前,就会调用带有
get\u question\u 2
的日志。

简单回答您不能这样做,因为ajax请求是异步的