为什么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函数无法改变全局或局部变量的值相关推荐

  1. ajax success重复,ajax中success函数中的事件会叠加吗?

    无标题文档 *{margin:0;padding:0} calendar{width:210px;margin:100px auto; overflow:hidden;border:1px solid ...

  2. 全局变量-函数内部不允许修改局部变量的值

    # 全局变量 num = 10def demo1():# 希望修改全局变量的值# 在 python 中,是不允许直接修改全局变量的值# 如果使用赋值语句,会在函数内部,定义一个局部变量num = 99 ...

  3. jQuery.ajax中success 和complete 区别

    $.ajax({       type: "post",       url: url,       dataType:'html',       success: functio ...

  4. Python中的函数(调用、参数、返回值、变量的作用域)

    一.函数的调用 代码块一: def hello():print('hello1')print('hello2')print('hello3') hello() 示例一及运行结果: 代码块二: def ...

  5. web前端-JavaScript中的函数(创建,参数,返回值,方法,函数作用域,立即执行函数)

  6. ext 日期时间控件js html页面代码,Ext JS框架中日期函数的用法及日期选择控件的实现...

    增加或减少时间,这个函数不改变原有Date对象的值,而是返回一个新的Date对象. // @param {Date} date 原日期对象. // @param {String} interval v ...

  7. JavaScript如何声明对象、函数以及对象中的函数(即方法)

    目录 声明对象的2种最常见方法 声明函数的2种最常见方法 在对象中声明函数 声明对象的2种最常见方法 1) var Zhihuijun = {name:'彭志辉',age:28,upName:'稚晖君 ...

  8. oracle 的wecate函数,1.Oracle中decode()函数用法

    1.Oracle中decode函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻 ...

  9. oracle 中decode函数

    Oracle 中 decode 函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,-值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译 ...

最新文章

  1. EmEditor编辑器正则表达式的优点
  2. 补丁更新选项的禁用与恢复
  3. 数据库的UNDO和REDO
  4. Python与R的区别和联系
  5. 用java发送邮件(黄海已测试通过)
  6. 哈罗单车怎么关锁还车_记者体验临沂共享单车定点还车 停错地方关不上锁
  7. php判断版本号大小,通用javascript代码判断版本号是否在版本范围之间_javascript技巧...
  8. Touch事件分发源码解析
  9. linux 联通ip配置,linux下设置电信网通双线路IP地址
  10. zabbix详解(感觉作者写的有点乱,但是很详细,所以转载下来,用过zabbix一段时间后复习用)
  11. Andorid11 暗码启动应用(一)
  12. 笔记本电脑(windows10)qq聊天时对方听不到自己的声音
  13. js 输出为underfined
  14. xdoj-81-字符串查找
  15. java面试教程视频
  16. 免费的可视化Web报表工具,JimuReport v1.4.4-beta版本发布
  17. 移动web-线性渐变
  18. Myeclipse链接sql server 2005是出现Error while performing database login with the sql2005 driver:
  19. Vue Baidu Map组件: 点、线、多边形、圆形、撤销、返回
  20. 介绍深度卷积神经网络中各种类型的模型

热门文章

  1. 在Win平台得到磁盘、CPU、用户信息
  2. 一步一步学Silverlight 2系列(6):键盘事件处理
  3. Android Notification状态栏通知
  4. Cs231n课堂内容记录-Lecture2-Part2 线性分类
  5. 雷林鹏分享:Ruby Web Services 应用 - SOAP4R
  6. CockroachDB学习笔记——[译]在CockroachDB中如何让在线模式更改成为可能
  7. Jaxb对xml报文头的小修小改
  8. 某考试 T2 Tree
  9. 【转】Android开发之数据库SQL
  10. 实现秒杀的几个想法(续)