始终从javascript函数获取未定义的返回

始终从javascript函数获取未定义的返回,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有这段代码,问题是我无法从结果文件中获取返回值: function resultit(id) { var res; $.ajax({ url: "result", type: 'POST', data: "id=" + id, success: function (result) {

我有这段代码,问题是我无法从结果文件中获取返回值:

function resultit(id) {
            var res;
            $.ajax({
                url: "result",
                type: 'POST',
                data: "id=" + id,
                success: function (result) {
                    res = result;
                    if (result == 0) {
                        alert('warning', 'FAILED !');
                    } else {
                        alert('danger', 'SUCCESS !');
                    }
                }
            });
            return res;
        } 

alert(resultit(id)); // always undefined
您能建议修改以获得返回值吗?提前感谢。

问题是您的res变量在异步回调中被分配了一个值,即ajax成功函数。这会影响到你的回报率;语句在为res赋值之前执行

要更清楚地了解正在发生的事情,请尝试以下操作

function resultit(id) {
  var res;
  $.ajax({
    url: "result",
    type: 'POST',
    data: "id=" + id,
    success: function (result) {
      res = result;
      alert('And this will happen third: ' + res); // ADD THIS LINE
      if (result == 0) {
        alert('warning', 'FAILED !');
      } else {
        alert('danger', 'SUCCESS !');
      }
    }
  });
  alert('This will happen second'); // AND THIS LINE
  return res;
} 

alert('This will happen first: ' + resultit(id)); // AND CHANGE THIS LINE
这3个警报将向您显示语句的执行顺序


这个问题有很多解决方案,所有这些都在上面的公认答案中列出

非常感谢您提供的信息,非常感谢。