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; */
}
您可以看到,在$.getquestions
变量中不为空,但在$.get之后,questions
为空
为什么??谢谢这就是AJAX的工作原理。在您的代码中,将在
获取问题
之前记录获取问题
。一旦进行了ajax调用,代码就会通过它(以get\u question\u 2
)。然后返回一个ajax调用,将执行函数中的代码(即get\u question
)
总之,一旦ajax调用完成,在ajax调用返回数据之前,就会调用带有
get\u question\u 2
的日志。简单回答您不能这样做,因为ajax请求是异步的