我的 MWE 数据.js如下所示:
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]
是undefined
。如何在另一个函数中访问来自 ajax 函数的数据?
$.ajax()
是异步的,因此当它完成请求并运行时data.push('test')
您的console.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]);
});
}