函数返回undefine,即使我在返回之前检查了变量是否未定义

function returns undefine even if i checked the variable is not undefined before returning

本文关键字:返回 检查 是否 未定义 变量 undefine 函数      更新时间:2024-04-05

我在一个函数中有一个非常简单的jquery ajax调用,但我得到了一个非常奇怪的错误。这是一个非常简单的功能

function checkLogin() {
    $.ajax({
        url: "checkLogin.php",
        success: function(data) {
            alert(data); //this does print what I want to see
            return data; //this however returns undefined!
        }
    });
}
//some button onclick
var login_status = checkLogin(); 
alert(login_status); //shows undefined!

这可能会帮助您:控制台日志返回未定义的

基本上,由于AJAX是异步的,所以警报将在return语句之前调用。

您可以通过切换两个表达式的顺序(或完全删除警报)来修复它:

 $.ajax({
       url: "checkLogin.php",
       success: function(data) {
           return data;
           alert(data); 
         }
     });

或者使用Promise接口:

  $.ajax({
       url : "checkLogin.php",
       success : function(data){
          return data;
          }
    }).then(function() { alert(data); });