ajax如何在不改变异步请求的情况下在外面拿到return数据

之前一直想不明白ajax要return数据必须是同步状态才可以。

$.ajax({
		url:Url,
		type:GetType,
		async:true,
		data:Data,
		dataType:DataType,
		success:function(res){
			return res;
		},
		error:function(res){
			
		}
	});

但是这样我设置async:false就毫无意义了,毕竟有时候有这个需求嘛,要异步的又可以拿到返回的数据,我们可以这样写:

function AjaxData(Url,GetType,Async,Data,DataType,CalBack){
	$.ajax({
		url:Url,
		type:GetType,
		async:Async,
		data:Data,
		dataType:DataType,
		success:function(res){
			CalBack(res);
		},
		error:function(res){
			tipsMsg("topMsg","网络/服务器错误","",2000);
		}
	});
}

我们可以将Ajax封装成一个方法,所有的参数都是传过来的,这样用着就比较灵活。然后调用如下:

AjaxData("../ajaxurl","POST",false,{name:1,pass:111},"json",function(res){
    //这里写得到数据之后的操作代码。
});

总结:

我们可以看到最后一个参数其实是一个函数,我们在得到数据之后将数据以参数的形式返还给calBack函数,然后由calBack来处理数据展示或者其他操作,这样写的话无论如何我们都可以得到数据了,关键是比较简洁而且代码重用性很高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值