ajax中success函数无法改变全局或局部变量的值

在调用一个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;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

Android从启动到程序运行发生的事情

转载请注明出处  博客地址:http://blog.csdn.net/JonsTank2013/article/details/51118563 作者:...

711
来自专栏开发之途

Android 获取应用Crash信息的方法

1467
来自专栏Java编程技术

Spring&Mybaits数据库配置解惑

一般我们会在datasource.xml中进行如下配置,但是其中每个配置项原理和用途是什么,并不是那么清楚,如果不清楚的话,在使用时候就很有可能会遇到坑,所以下...

1132
来自专栏cmazxiaoma的架构师之路

Android实战 粗略实现一个简单的C/S结构聊天室的功能

1985
来自专栏文大师的新世界

5. ListView应用

ListView大概是所有移动应用都会用到的组件了,大部分都在首页,这章结合redux来看如何从API取数据再到如何应用redux更新渲染组件ListView。

1385
来自专栏别先生

初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面

1:JSP JSP的基本语法: 指令标识page,include,taglib; page指令标识常用的属性包含Language用来定义要使用的脚本语言;con...

2995
来自专栏Android相关

Android7.0中的ResourceNotFoundException

随着Android N的出现,适配7.0的问题也成为了各大产品头疼的问题。而最近在我们的平台上面收到了7.0的Crash。具体的栈如下:

1775
来自专栏Phoenix的Android之旅

观察者模式--DataBinding的原理和坑

上一次我们介绍了DataBinding的应用,不过只在应用层面描述了下,没有做深入分析。 关于DataBinding的实现原理,它的根本思想是观察者模式。 这篇...

1262
来自专栏酷玩时刻

微信一次性订阅消息

http请求方式: post https://api.weixin.qq.com/cgi-bin/message/template/subscribe?acc...

1373
来自专栏Android机动车

手撸Router——解决跨模块下的页面跳转

正是由于将项目模块化拆分,各模块之间没有任何依赖关系,也互相不可见,那么从A模块的a界面跳转到B模块的b界面该怎么办呢?

883

扫码关注云+社区