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

相关文章

来自专栏Android相关

Android7.0中的ResourceNotFoundException

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

1495
来自专栏酷玩时刻

微信一次性订阅消息

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

1103
来自专栏Android研究院

彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想

在OKhttp 源码解析之前,我们必须先要了解http的相关基础知识,任何的网络请求都离不开http。

1282
来自专栏刘晓杰

Okhttp3 Interceptor

3397
来自专栏崔庆才的专栏

Scrapy框架的使用之Downloader Middleware的用法

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

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

1875
来自专栏向治洪

深入理解Android插件化技术

插件化技术可以说是Android高级工程师所必须具备的技能之一,从2012年插件化概念的提出(Android版本),到2016年插件化的百花争艳,可以说,插件化...

4217
来自专栏白驹过隙

ZeroMQ - 三种模型的python实现

38514
来自专栏Felix的技术分享

《一个操作系统的实现》笔记(5)--内核雏形

1374
来自专栏别先生

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

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

2535

扫码关注云+社区