外部函数怎样访问内部函数变量值?
function loadData(){
var data1 = 0;
$.each([0,1,2,3], function(k, v){
if(v==0){
$("body").post("ajaxUrl", {"data1":data1}, function(data){
if (data.length ==0){
data1 = 1;
} else {
console.log("error");
}
})
} else {
console.log("error");
}
});
alert(data1); //输出为0;怎样才能让这里输出为1??
}
用你这种写法,没有办法实现。
因为你的代码里面的
这个函数是一个异步过程(AJAX请求)的回调函数,它一定是在
alert(data1)
之后被调用的。所以你alert出来的结果一定是0。办法就是改变程序的结构。比如使用Promise,或者某些处理异步的类库(如async等)。