专栏名称: 前端JavaScript
分享 | 学习 | 交流 | 原创 分享是学习的开始;学习不必要从头开始,是从现在开始;交流能沟通你我,提高你的学识;期待你的加入!!! web前端技术交流,JavaScript,HTML5,CSS3……
目录
相关文章推荐
51好读  ›  专栏  ›  前端JavaScript

[S3-E377]二次封装 query ajax 办法

前端JavaScript  · 公众号  · Javascript  · 2017-07-05 06:31

正文

请到「今天看啥」查看全文



$.ajax({

url: url,

data: data,

success: function(data){

if(data.code == 200) {

dosomething()

} else {

alert(data.err_msg);

}

}

})

为了解决这个问题,我们用一个函数再次封装 $.ajax, 把这种正确与否判断再处理业务逻辑或者报错提醒提取出来做成公共的部分。


util.ajax = function(obj, successFn){

$.ajax({

url: obj.url || '/interface',

data: obj.data || {},

dataType: obj.dataType || 'json',

type: obj.type || 'get',

success: function(data){

if (data.code != 200) {

alert(data.err_msg);

} else {

successFn(data.data)

}

},

error: function(err){

alert(err)

}

})

}


promise

用 util.ajax 代替 $.ajax 使用就可以减少了业务错误的判断啦。 我们再来完善下, 不使用回调的方式,使用 promise 的方式调用, 减少回调,让代码更清晰。


util.ajax = function(obj)  {

var deferred = $.Deferred();

$.ajax({

url: obj.url || '/interface',

data: obj.data || {},

dataType: obj.dataType || 'json',

type: obj.type || 'get',

}).success(function (data) {

if (data.code != 200) {

deferred.reject(data.err_msg);

} else {

deferred.resolve(data.data)

}

}).error(function (err) {

deferred.reject('接口出错,请重试');

})







请到「今天看啥」查看全文