最近做项目的时候,遇到的问题大多都是关于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的。