Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript ajax返回值“;“被盗”;在浏览器控制台中_Javascript_Jquery_Ajax_Browser - Fatal编程技术网

javascript ajax返回值“;“被盗”;在浏览器控制台中

javascript ajax返回值“;“被盗”;在浏览器控制台中,javascript,jquery,ajax,browser,Javascript,Jquery,Ajax,Browser,我在浏览器中执行了以下javascript代码: function run(request) { var res; $.ajax({ url:'http://custom-host:8080/', type: "POST", async: false, data: request }).done(function(data, textStatus, jqXHR){ console.log(textStatus);

我在浏览器中执行了以下javascript代码:

function run(request) {
    var res;
    $.ajax({
      url:'http://custom-host:8080/',
      type: "POST",
      async: false,
      data: request
    }).done(function(data, textStatus, jqXHR){
      console.log(textStatus);
      res = data;
    });
    return res;
}
它只是向我的定制服务器请求它得到的响应。Chrome控制台日志如下所示:

> var a = run({command:'version'}); // executing custom function
success dev.pycached-admin/:14 // this is the console log
undefined // this is the console returned value
> a // ask for value a
"1.1" // value a (returned from ajax)
问题是:当“1.1”的实际值随后返回(该值已正确分配)时,控制台中如何返回undefined

如果在done函数中添加
调试器
语句:

}).done(function(data, textStatus, jqXHR){
  console.log(textStatus);
  debugger;
  res = data;
});
然后我可以看到苹果的代码,它可能维护着chrome控制台(
VM
脚本选项卡中的文件)。无论如何,AJAX调用是同步的,那么为什么第一次没有返回值呢

…那么为什么第一次没有返回值呢

它是,但是
var
是一个语句,而不是一个表达式,因此它不能有控制台显示的结果。只要这样做,您就可以看到:

> var a = "foo"; undefined > a "foo" > var a undefined > a = run({command:'version'}); >var a=“foo”; 未定义 >a “福” 那么就这么做吧:

> var a = "foo"; undefined > a "foo" > var a undefined > a = run({command:'version'}); >变量a 未定义 >a=run({command:'version}); …这应该给你:

success dev.pycached-admin/:14 // this is the console log "1.1" success dev.pycached-admin/:14//这是控制台日志
“1.1”是的,您完全正确:
var x//undefined//x=run({command:'version});//success dev.pycached-admin/:14/“1.1”