ajax中success函数无法改变全局或局部变量的值
生活随笔
收集整理的這篇文章主要介紹了
ajax中success函数无法改变全局或局部变量的值
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
在調(diào)用一個(gè)jquery的ajax方法時(shí)我們有時(shí)會(huì)需要該方法返回一個(gè)值或者給某個(gè)全局變量賦值,可是我們發(fā)現(xiàn)程序執(zhí)行完后并沒(méi)有獲取到我們想要的值。代碼如下:
function modifyMissionSchedule(x,obj) {var PHONE = getPhone();var stream = {"MISSIONID":obj.parent().next("li").attr("id"),"PHONE":PHONE,"SCHEDULE":x, //修改后的進(jìn)度};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; }這樣子,該函數(shù)的返回值就會(huì)無(wú)法改變,主要原因是ajax的異步機(jī)制。
只要加上一句async:false,問(wèn)題即可解決。
function modifyMissionSchedule(x,obj) {var PHONE = getPhone();var stream = {"MISSIONID":obj.parent().next("li").attr("id"),"PHONE":PHONE,"SCHEDULE":x, //修改后的進(jìn)度};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; }?
?
轉(zhuǎn)載于:https://my.oschina.net/hjchhx/blog/706315
總結(jié)
以上是生活随笔為你收集整理的ajax中success函数无法改变全局或局部变量的值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Logback 专题
- 下一篇: SAP 中如何寻找增强