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 条评论
登录 后参与评论

相关文章

来自专栏python读书笔记

python 数据分析基础 day5-读写csv文件基础python读写csv文件通过pandas模块读写csv文件通过csv模块读写csv文件

今天说一下使用python读写csv文件。 读写csv文件可以使用基础python实现,或者使用csv模块、pandas模块实现。 基础python读写csv...

3846
来自专栏python3

tkinter -- Menu

程序每次打印出当前选中的语言,与 Checkbutton 不同的是,同一个组内只有一个处于选中状态

573
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockMvc进行服务端的单元测试

前言 承接前一篇文章《Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例》,已经讲解了dao层和service层的单元测...

2434
来自专栏我和未来有约会

[Silverlight 4 RC]WebBrowserBrush概览

上一节介绍了WebBrowser控件,这里就接着WebBrowser介绍下WebBrowserBrush控件。在silverlight 4 beta2时WebB...

1968
来自专栏从流域到海域

Python Windows下分布式进程的坑(分布式进程的一个简单例子)

下面这个例子基于”廖雪峰的Python教程:分布式进程”原例在Linux上运行,直接在Windows上运行会出现错误,下面是针对原例进行的改进,使之能成功...

2185
来自专栏云知识学习

故障:fork failed:Resource Temporarily Unavailable解决方案

AIX中用户无法执行任何命令,再ssh连报fork failed:Resource Temporarily Unavailable,是该用户的进程数超过了限制 ...

3988
来自专栏Java学习123

MyEclipse10.7安装jad反编译插件

2727
来自专栏章鱼的慢慢技术路

Assets/FollowDestination.cs(6,13): error CS0246: The type or namespace name `NavMeshAgent' could not

1024
来自专栏Golang语言社区

如何跨服务器复制表中数据

不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from ...

3215
来自专栏Golang语言社区

如何跨服务器复制表中数据

不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from ...

4119

扫描关注云+社区