关于Ajax回调函数内返回值无法给全局变量赋值的问题
众所周知,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回调函数内返回值无法给全局变量赋值的问题相关推荐
- ajax回调函数的返回值,使用ajax和回调函数向函数传递/返回值
我试图读p_info函数返回从函数getproductInfo包含ajax调用,但我得到未定义的值.我使用回调函数来实现这一点,但仍然无法正常工作.我错在哪里?使用ajax和回调函数向函数传递/返回值 ...
- 解决ajax回调函数无返回值得问题
解决ajax回调函数无返回值得问题 参考文章: (1)解决ajax回调函数无返回值得问题 (2)https://www.cnblogs.com/lzxlfly/p/5879167.html (3)ht ...
- spring返回数据使用ajax,【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中...
问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示: 问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...
- java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...
# with open(r'a.txt', 'r', encoding='utf-8')as f: # data1=f.read() # print('>1>:',data1) # pri ...
- 一木.溪桥学Python-09:函数的返回值、函数的作用域、作用域的优先级、递归函数、内置文件中常用方法、匿名函数lambda、高阶函数
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-09:函数的返回值.作用域.作用域的优先级.递归函数.内置文件中常用方法.匿名 ...
- 对ajax回调函数的研究
假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...
- jQuery AJAX回调函数this指向问题
了解JavaScript的人都知道JavaScript的this不总是指向当前对象,函数或类中的this指向与调用这个函数的对象以及上下文环境是息息相关的.如在全局作用域调用一个含this的对象,此时 ...
- Python基本语法_函数_返回值
目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...
- java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?
1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...
最新文章
- 使用Maven创建Java项目
- PHP5中PDO(PHP DATA OBJECT)模块基础详解
- Google 系两公司联手,要让无人车少“犯错”
- MacBook 如何一次性关闭所有程序的通知消息
- android studio 调试c/c++代码小记
- .net mvc web api 返回 json 内容,过滤值为null的属性
- 不谈商业模式,为什么众筹新闻难成功
- python3写的腾讯漫画下载器
- Why Service Mesh
- [OneNote同步失败记录]OneNote 当前无法同步笔记。将继续尝试。
- CAN通讯程序C语言,AT90CAN单片机CAN通信模块介绍及软件编程
- GAN-cls:具有匹配感知的判别器
- handsome 404页面
- php 菱形问号,python爬虫出现菱形问号乱码的解决方法
- 中国电信“公板”计划主攻中端市场
- Spark论文思想之-基于RDD构建的模型(Shark的来龙去脉)
- java 图片宽高_[Java]获取图片高和宽
- JavaScript 制作简易ATM机
- OSError: [WinError 145] 目录不是空的。
- 欣颖科技魔兽单机修改服务器名,魔兽怀旧服:P2高效赚金方法,工作室无法染指,欧皇一小时上千金...