一、通过回调方式:
function ajaxAsync(datas, callback) {
var param = JSON.stringify(datas);
$.ajax({
type: "POST",
url: "www.********/rest",
dataType: "json",
data: {
data: param
},
beforeSend: function (request) {
loading = layer.load(1, { shade: [0.3, "#fff"] })
},
success: function (re) {
callback(re);
},
error: function (re) {
layer.msg('网络错误,稍后重试')
},
complete: function (re) {
layer.close(loading);
}
});
}
使用时:
ajaxAsync(datas, function (res) {
if (re.code == 1) {
console.log(res)
} else {
layer.msg(re.msg);
}
})
二、通过 $.Deferred (其实就是promise)
function reqAjax(param){
var deferred = $.Deferred();
$.ajax({
type:"post",
dataType: 'json',
url:"www.*****/rest",
data: {
data: JSON.stringify(param),
},
success: function(data){
deferred.resolve(data)
},
error: function(){
deferred.reject()
}
});
return deferred;
}
使用时:
var defer = $.Deferred();
var def = reqAjax(param);
def.then(function(res){
defer.resolve(res);
});
def.fail(function(err){
defer.reject();
layer.msg("系统繁忙,请稍后再试!");
});