Javascript 获取函数变量

Javascript 获取函数变量,javascript,jquery,Javascript,Jquery,作为javascript新手,再次遇到问题。我想使用JQuery的get从我的PHP脚本中获得回复。这是我的函数 function getNext(){ var returnData = null; $.get("get.php", {task:'next'}, function(responseText){ returnData = responseText; }, "text"); return returnData; } 现在很明显

作为javascript新手,再次遇到问题。我想使用JQuery的get从我的PHP脚本中获得回复。这是我的函数

function getNext(){
    var returnData = null;
    $.get("get.php", {task:'next'}, function(responseText){
        returnData = responseText; }, "text");  
    return returnData;      
}
现在很明显,即使请求成功,函数也返回null。为什么?
提前感谢您的帮助。

因为ajax是异步的,它独立运行,所以在返回语句完成时,它还没有被分配。

因为ajax是异步的,它独立运行,所以在返回语句完成时,它还没有被分配

function getNext(){
   var returnData;  
   $.ajax({
      url: "get.php",
      data: {task:'next'},
      success: function(responseText) { returnData = responseText },
      async: false;
   });
   return returnData;      
}
请注意,这可能会冻结UI,因为Javascript是单线程的——它将等待从服务器收到响应

您可能需要重构它,以便在成功回调中调用该操作。您能告诉我们是什么触发了getNext方法的调用吗

请注意,这可能会冻结UI,因为Javascript是单线程的——它将等待从服务器收到响应

您可能需要重构它,以便在成功回调中调用该操作。您能告诉我们是什么触发了getNext方法的调用吗

试试这个

function getNext(){
  var returnData = null;
  $.get("get.php", {task:'next'}, 
    function(responseText){
      returnData = responseText;
      alert('Data ' + responseText);
    });
}
您必须定期轮询returnData是否包含所需的实际数据,或者将代码放入回调方法中

function getNext(){
  var returnData = null;
  $.get("get.php", {task:'next'}, 
    function(responseText){
      returnData = responseText;
      alert('Data ' + responseText);
    });
}

您必须轮询returnData是否包含您定期需要的实际数据,或者将代码放入回调方法中

Awesome,非常感谢。我现在明白了。代码是由DocumentReady调用的,但我编写的任何代码都不只是为了发现AJAX。太棒了,非常感谢。我现在明白了。代码是由documentready调用的,但我不会编写任何只用于发现AJAX的代码。