欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js函数嵌套调用,无法获取函数返回值代码实现

程序员文章站 2022-04-19 18:50:07
正常情况: function a() { return true; } function b() { var ret = a(); alert(ret);...

正常情况:

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的异步请求为同步即可。