jquery $.post返回值同步机制

该博客讨论了jQuery中$.post方法默认的异步执行特性,并解释如何通过设置$.ajaxSettings.async = false来实现同步返回值,以便在函数中正确返回$.post的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function getWorkInfo(){

var infoList = new Array();
$(document).ready(function(){
$().ready(function(){
$.ajaxSettings.async = false;
$.post("workInfoMap.do","",function(data,status){
var jsonObj = JSON.parse( data ); 
var workInfo = "[";
var unknowInfo = "[";
var continueInfo = "[";
for(var j = 0 ; j < jsonObj.infoMapList.length ; j++ ){
if( j == jsonObj.infoMapList.length - 1) {
workInfo = workInfo + "{name: "+jsonObj.infoMapList[j].name+",value:"+jsonObj.infoMapList[j].value+"}]";
unknowInfo = unknowInfo + "{name: "+jsonObj.unknowList[j].name+",value:"+jsonObj.unknowList[j].value+"}]";
continueInfo = continueInfo + "{name: "+jsonObj.continueList[j].name+",value:"+jsonObj.continueList[j].value+"}]";
}else{
workInfo = workInfo + "{name: "+jsonObj.infoMapList[j].name+",value:"+jsonObj.infoMapList[j].value+"},";
unknowInfo = unknowInfo + "{name: "+jsonObj.unknowList[j].name+",value:"+jsonObj.unknowList[j].value+"},";
continueInfo = continueInfo + "{name: "+jsonObj.continueList[j].name+",value:"+jsonObj.continueList[j].value+"},";
}
}
infoList.push(workInfo);
infoList.push(unknowInfo);
infoList.push(continueInfo);
});
$.ajaxSettings.async = true;
});
});
alert (infoList[0]);
return infoList;

}

$.post默认情况下是异步执行的,在$.post之前就已经return 了。要return $.post中的内容需要将$.post设置为同步机制

在执行$.post之前加$.ajaxSettings.async = false; (同步执行) 

执行你的代码之后及时恢复为$.ajaxSettings.async = true; (修改回默认的异步执行) 
这样。
$.ajaxSettings.async = false;
$.post();
$.ajaxSettings.async = true;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值