js中Ajax返回的值怎么当函数返回值供别的函数调用?

图片说明
图片说明
如上图代码 我调用时返回的是undefined

改为同步,而且你的回调里面返回值没用,并不是你的getTotalIntegral的返回值,还有以后代码,不要发截图。看桌就烦

 function getTotalIntegral(){
//...原来的代码
var rst=false;
$.ajax({
async:false,/////////////同步
success:function(data){
if(data.state==1)rst=data.integral
}
///其他配置
})

return rst;//////
}

你要保存到变量中,然后在外面Uu 一层返回。注意异步的时间点

你可以把别的函数最为参数传给getTotalIntegral,比如

 function getTotalIntegral(alertAjax){
    //...原来的代码
    $.ajax({
        //...原来的代码       
        success:function(data){
            if(data.state==1){
                alertAjax(data.integral);
            }
        }
    })
}

function alertAjax(data){
    alert(data);
}

如果你不想定义一个函数,可以直接使用匿名函数,如

 function getTotalIntegral(alertAjax){
    //...原来的代码
    $.ajax({
        //...原来的代码       
        success:function(data){
            if(data.state==1){
                alertAjax(data.integral);
            }
        }
    })
}

$(function(){
    $('#gameRule').hide();
    getTotalIntegral(function(data){alert(data)});
});

原来关键在于我默认的是异步所以不行。