众所周知,Ajax从后端获得数据到回调函数,想要将获取的值赋给全局变量的话要将Ajax中的async改为false,使其同步,不然js在按顺序执行时等请求发出后就先去执行Ajax下面的代码了。

  var data = CommonUtil.paramsUtil.getDataLoginId();CommonUtil.ajax({url: "/ChartController/searchLineChartParameterForBasic",data: data,async: false,callback: function (response) {}});

但是有时候这样设置后仍然无法给全局变量赋值比如下列情况:

var paperXaxis = [];
var paperData = [];function getLineChartData() {var data = CommonUtil.paramsUtil.getDataLoginId();CommonUtil.ajax({url: "/ChartController/searchLineChartParameterForBasic",data: data,async: false,callback: function (response) {paperXaxis = response["paperTimeList"];console.log(paperXaxis);paperData = response["paperSumList"];console.log(paperData);}});
}
console.log(paperXaxis);
console.log(paperData);

运行结果如下


在回调函数内部可以获得返回的集合给全局变量赋值,但是在外部全局变量值仍为初始时的[ ]。

造成这种现象的原因是赋值方式的问题,在回调函数内不能直接等号赋值,要用循环将值返回集合的每一个值用push方法放入定义的全局变量中,这样外部就可以使用。

var paperXaxis = [];
var paperData = [];function getLineChartData() {var data = CommonUtil.paramsUtil.getDataLoginId();CommonUtil.ajax({url: "/ChartController/searchLineChartParameterForBasic",data: data,async: false,callback: function (response) {var i = 0;for (i in response["paperTimeList"]) {paperXaxis.push(response["paperTimeList"][i])}console.log(paperXaxis);for (i in response["paperSumList"]) {paperData.push(response["paperSumList"][i])}console.log(paperData);}});
}
console.log(paperXaxis);
console.log(paperData);

执行结果:


这样回调函数内赋值成功了,外部也可以获得赋给全局变量的回调值。

--------------分割线---------------------
记录一下这个小问题,提醒自己以后别忘了- 。-

关于Ajax回调函数内返回值无法给全局变量赋值的问题相关推荐

  1. ajax回调函数的返回值,使用ajax和回调函数向函数传递/返回值

    我试图读p_info函数返回从函数getproductInfo包含ajax调用,但我得到未定义的值.我使用回调函数来实现这一点,但仍然无法正常工作.我错在哪里?使用ajax和回调函数向函数传递/返回值 ...

  2. 解决ajax回调函数无返回值得问题

    解决ajax回调函数无返回值得问题 参考文章: (1)解决ajax回调函数无返回值得问题 (2)https://www.cnblogs.com/lzxlfly/p/5879167.html (3)ht ...

  3. spring返回数据使用ajax,【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中...

    问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示: 问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...

  4. java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...

    # with open(r'a.txt', 'r', encoding='utf-8')as f: # data1=f.read() # print('>1>:',data1) # pri ...

  5. 一木.溪桥学Python-09:函数的返回值、函数的作用域、作用域的优先级、递归函数、内置文件中常用方法、匿名函数lambda、高阶函数

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-09:函数的返回值.作用域.作用域的优先级.递归函数.内置文件中常用方法.匿名 ...

  6. 对ajax回调函数的研究

    假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...

  7. jQuery AJAX回调函数this指向问题

    了解JavaScript的人都知道JavaScript的this不总是指向当前对象,函数或类中的this指向与调用这个函数的对象以及上下文环境是息息相关的.如在全局作用域调用一个含this的对象,此时 ...

  8. Python基本语法_函数_返回值

    目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...

  9. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?

    1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...

最新文章

  1. 使用Maven创建Java项目
  2. PHP5中PDO(PHP DATA OBJECT)模块基础详解
  3. Google 系两公司联手,要让无人车少“犯错”
  4. MacBook 如何一次性关闭所有程序的通知消息
  5. android studio 调试c/c++代码小记
  6. .net mvc web api 返回 json 内容,过滤值为null的属性
  7. 不谈商业模式,为什么众筹新闻难成功
  8. python3写的腾讯漫画下载器
  9. Why Service Mesh
  10. [OneNote同步失败记录]OneNote 当前无法同步笔记。将继续尝试。
  11. CAN通讯程序C语言,AT90CAN单片机CAN通信模块介绍及软件编程
  12. GAN-cls:具有匹配感知的判别器
  13. handsome 404页面
  14. php 菱形问号,python爬虫出现菱形问号乱码的解决方法
  15. 中国电信“公板”计划主攻中端市场
  16. Spark论文思想之-基于RDD构建的模型(Shark的来龙去脉)
  17. java 图片宽高_[Java]获取图片高和宽
  18. JavaScript 制作简易ATM机
  19. OSError: [WinError 145] 目录不是空的。
  20. 欣颖科技魔兽单机修改服务器名,魔兽怀旧服:P2高效赚金方法,工作室无法染指,欧皇一小时上千金...

热门文章

  1. cocos creator小游戏案例之橡皮怪
  2. LeNet 神经网络
  3. Linux 文件的基本属性 修改文件属性
  4. 错误 :无法将文件“XXX”复制到“XXX”。对路径“XXX”的访问被拒绝
  5. 线程实现火车票抢票程序
  6. 物理CPU,物理CPU内核,逻辑CPU概念详解
  7. Kafka分布式消费学习
  8. c0000005错误怎么解决_宽带错误651怎么解决,办法
  9. 如何下载北辰区卫星地图高清版大图?
  10. 【iOS】cocoapods pod