javascript变量等于函数的值

Jak*_*ako 0 javascript ajax

可能重复:
如何返回AJAX响应文本?
如何从函数中返回AJAX调用的响应?

所以我有一个javascript函数,我正在进行AJAX调用,以查看用户是在线还是离线.它看起来像这样.

function onlineStatus(){

    $.ajax({
        url: "assets/ajax/online-offline.php",
        cache: false,
        success: function(html){
          return html;
        }
    }); 
}
Run Code Online (Sandbox Code Playgroud)

我想将此函数的值赋值为一个我可以使用的变量.

像这样的东西.

var test = onlineStatus();

if (test == "true")
   alert("online");
else
   alert("offline");
Run Code Online (Sandbox Code Playgroud)

这可能吗?我一定做错了,但无法弄清楚如何实现这个结果.谢谢

//编辑:感谢大家的帮助,抱歉,没有意识到这可能是一个重复的问题.我不知道最初要搜索什么,所以我没有看到任何相关内容.

Ian*_*rts 6

$.ajax是异步的,所以你不能返回任何东西onlineStatus,你需要传递一个可以在ajax调用完成时调用的回调函数.

function onlineStatus(callback){

    $.ajax({
        url: "assets/ajax/online-offline.php",
        cache: false,
        success: callback
    }); 
}

onlineStatus(function(test) {
    if (test == "true")
       alert("online");
    else
       alert("offline");
});
Run Code Online (Sandbox Code Playgroud)