ajax中success函数无法改变全局或局部变量的值
为什么80%的码农都做不了架构师?>>>
在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值。代码如下:
function modifyMissionSchedule(x,obj) {var PHONE = getPhone();var stream = {"MISSIONID":obj.parent().next("li").attr("id"),"PHONE":PHONE,"SCHEDULE":x, //修改后的进度};var EncryptData=dataProces(stream);var check=true;$.ajax({url: apiUrl+"modifyMissionSchedule.do?TAG=" + TAG,type: "POST",data: EncryptData,dataType: "json",cache: false,success: function(data) {if(data.CODE=="1"){getMissionLog();check=true;}else if(data.CODE=="-1"){check=false;}}});return check;
}
这样子,该函数的返回值就会无法改变,主要原因是ajax的异步机制。
只要加上一句async:false,问题即可解决。
function modifyMissionSchedule(x,obj) {var PHONE = getPhone();var stream = {"MISSIONID":obj.parent().next("li").attr("id"),"PHONE":PHONE,"SCHEDULE":x, //修改后的进度};var EncryptData=dataProces(stream);var check=true;$.ajax({url: apiUrl+"modifyMissionSchedule.do?TAG=" + TAG,type: "POST",data: EncryptData,dataType: "json",cache: false,async:false,success: function(data) {if(data.CODE=="1"){getMissionLog();check=true;}else if(data.CODE=="-1"){check=false;}}});return check;
}
转载于:https://my.oschina.net/hjchhx/blog/706315
ajax中success函数无法改变全局或局部变量的值相关推荐
- ajax success重复,ajax中success函数中的事件会叠加吗?
无标题文档 *{margin:0;padding:0} calendar{width:210px;margin:100px auto; overflow:hidden;border:1px solid ...
- 全局变量-函数内部不允许修改局部变量的值
# 全局变量 num = 10def demo1():# 希望修改全局变量的值# 在 python 中,是不允许直接修改全局变量的值# 如果使用赋值语句,会在函数内部,定义一个局部变量num = 99 ...
- jQuery.ajax中success 和complete 区别
$.ajax({ type: "post", url: url, dataType:'html', success: functio ...
- Python中的函数(调用、参数、返回值、变量的作用域)
一.函数的调用 代码块一: def hello():print('hello1')print('hello2')print('hello3') hello() 示例一及运行结果: 代码块二: def ...
- web前端-JavaScript中的函数(创建,参数,返回值,方法,函数作用域,立即执行函数)
- ext 日期时间控件js html页面代码,Ext JS框架中日期函数的用法及日期选择控件的实现...
增加或减少时间,这个函数不改变原有Date对象的值,而是返回一个新的Date对象. // @param {Date} date 原日期对象. // @param {String} interval v ...
- JavaScript如何声明对象、函数以及对象中的函数(即方法)
目录 声明对象的2种最常见方法 声明函数的2种最常见方法 在对象中声明函数 声明对象的2种最常见方法 1) var Zhihuijun = {name:'彭志辉',age:28,upName:'稚晖君 ...
- oracle 的wecate函数,1.Oracle中decode()函数用法
1.Oracle中decode函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻 ...
- oracle 中decode函数
Oracle 中 decode 函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,-值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译 ...
最新文章
- EmEditor编辑器正则表达式的优点
- 补丁更新选项的禁用与恢复
- 数据库的UNDO和REDO
- Python与R的区别和联系
- 用java发送邮件(黄海已测试通过)
- 哈罗单车怎么关锁还车_记者体验临沂共享单车定点还车 停错地方关不上锁
- php判断版本号大小,通用javascript代码判断版本号是否在版本范围之间_javascript技巧...
- Touch事件分发源码解析
- linux 联通ip配置,linux下设置电信网通双线路IP地址
- zabbix详解(感觉作者写的有点乱,但是很详细,所以转载下来,用过zabbix一段时间后复习用)
- Andorid11 暗码启动应用(一)
- 笔记本电脑(windows10)qq聊天时对方听不到自己的声音
- js 输出为underfined
- xdoj-81-字符串查找
- java面试教程视频
- 免费的可视化Web报表工具,JimuReport v1.4.4-beta版本发布
- 移动web-线性渐变
- Myeclipse链接sql server 2005是出现Error while performing database login with the sql2005 driver:
- Vue Baidu Map组件: 点、线、多边形、圆形、撤销、返回
- 介绍深度卷积神经网络中各种类型的模型