我有这段代码
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
为空!
为什么呢?感谢
答案 0 :(得分:0)
这就是AJAX的工作原理。在您的代码中get_question_2
将在get_question
之前记录。一旦进行了ajax调用,代码就会越过它(到get_question_2
)。然后返回一个ajax调用,函数内的代码(即get_question
)将被执行。
总而言之,一旦完成ajax调用并且在ajax调用返回数据之前,就会调用带有get_question_2
的日志。