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

时间:2014-03-30 13:00:36

标签: 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', 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为空!

为什么呢?感谢

1 个答案:

答案 0 :(得分:0)

这就是AJAX的工作原理。在您的代码中get_question_2将在get_question之前记录。一旦进行了ajax调用,代码就会越过它(到get_question_2)。然后返回一个ajax调用,函数内的代码(即get_question)将被执行。

总而言之,一旦完成ajax调用并且在ajax调用返回数据之前,就会调用带有get_question_2的日志。