js函数嵌套调用,无法获取函数返回值
正常情况:
function a() {
return true;
}
function b() {
var ret = a();
alert(ret);
}
异常情况:
function a() {
$.ajax({
url:www.baidu.com,
data: {},
method:post,
dataType:json,
success:function(data){
return true;
},
error: function (data) {
return false;
}
});
}
function b() {
var ret = a();
alert(ret);
}
由于使用ajax进行异步请求,导致函数调用a函数,不等ajax执行完,就执行alert,导致无法获取a函数的输出,输出报错。
修改方法:
function a() {
$.ajax({
url:www.baidu.com,
data: {},
method:post,
dataType:json,
async:false,
success:function(data){
return true;
},
error: function (data) {
return false;
}
});
}
function b() {
var ret = a();
alert(ret);
}
关闭ajax的异步请求为同步即可。
