Javascript 在另一个函数中从ajax函数访问数据
My MWE data.js如下所示:Javascript 在另一个函数中从ajax函数访问数据,javascript,jquery,ajax,scope,global-variables,Javascript,Jquery,Ajax,Scope,Global Variables,My MWE data.js如下所示: var data = []; function initdata(){ $.ajax({ ... success: function(data){ data.push("test"); }, ... }); } $(document).ready(function(){ initdata(); console.log(data.lengt
var data = [];
function initdata(){
$.ajax({
...
success: function(data){
data.push("test");
},
...
});
}
$(document).ready(function(){
initdata();
console.log(data.length);
console.log(data[0]);
}
但是控制台显示,data.length
是0
,data[0]
是未定义的。如何在另一个函数中访问ajax函数中的数据?$.ajax()
是异步的,因此当它完成请求并运行data.push('test')
时,您的控制台.log(data.length)
已经完成。
解决此问题的一种方法是使用回调:
function initdata(callback) {
$.ajax({
...
success: function(result) { // or just success: callback,
callback(result);
}
});
}
$(document).ready(function() {
initdata(function(data) {
console.log(data.length);
console.log(data[0]);
});
}
“如何从另一个函数中的ajax函数访问数据?”您可以将数据传递给另一个函数。谢谢,这非常有帮助。谢谢!有没有办法用$实现同样的目标。什么时候?