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的异步请求为同步即可。
经验分享 程序员 微信小程序 职场和发展