封装ajax

最近做项目的时候,遇到的问题大多都是关于ajax传输数据获取数据后的一个处理。为此,我遍历百书,寻遍度娘,也没能找到一个能为我所用的。无奈之下,自己总结各方经验,自己封装了ajax,一个是promise+JQ,另一个是直接封装jQ的ajax。

promise+JQ+ajax:

 1 function postJSON(url, data) {
 2    return new Promise( (resolve, reject) => {
 3       $.ajax({
 4           type:'post',
 5           ur:url,
 6           data:data,
 7           dataType:'json',
 8           success:function(result){
 9               resolve(result);
10           },
11           error:function(error){
12               reject(error);
13           }
14       })
15    })
16 }
17 
18 postJSON(url, data)    // => 这里面是就try
19 .catch( error => {
20   // dosomething          // => 这里就是catch到了error,如何处理error以及返还合适的值
21 })
22 .then( result => {
23   // dosomething          // 这里就是final
24 })

JQuery+ajax:

 1 var publicAjax={
 2     method:function(type,url,data,success,error){
 3             $.ajax({
 4               type:type,
 5               ur:url,
 6               data:data,
 7               dataType:'json',
 8               success:function(result){
 9                   success&&success(result);
10               },
11               error:function(err){
12                   error&&error(err);
13               }
14           })
15     }
16 }
17 
18 publicAjax.method(type,url,data,success,error);
19 
20 function success(result){
21 
22     //接收数据成功
23 
24 }
25 
26 function error(err){
27     
28     //接收数据失败
29 }

虽然封装的不是很好,但是实用,并且把业务逻辑分离出来,单独编写,个人觉得还是OK的。

原文地址:https://www.cnblogs.com/studyshufei/p/8040135.html