js关于同步异步的问题以及本地json文件被js加载问题(前端网备份)
var several=[];
$.ajax({
type: "get",
url: "/js/race.json",
async:false, //是否为异步请求,true为异步请求,false为同步请求
success: function(data) {
console.log(data);
dl=data.data;
for(var i=0; i<dl.length; i++){
several.push(dl[i].name);
}
}
});
console.log(several);
如果这里用的是异步的话,several数组外面读取为空,想异步做只能在success里面传值(这里的原因是因为外面 console log。很难得到正确的数据。因为他们会先执行,但异步过程,拿数据那块儿是后执行的)
这里涉及到了同步异步的问题
如果这里用的是同步的话,外面则可以读取到,
舍弃同步用异步,因为性能更好
//第二种方法 回调函数可以在外部调用
var several=[];
function load_val(callback){
$.getJSON("../js/race.json",function(data){
var dl=data.data;
for(var i=0; i<dl.length; i++){
several.push(dl[i].name);
}
callback(several);
});
}
function b (){
console.log(several);
}
load_val(b);