我借鉴了下,uniapp大佬关于的axios的封装demo。下面是我对云函数的封装,欢迎大家提出问题,虽然我也不一定会改!!!
const request = (name = '', data = {}) => {
// 如果有token,就自动添加到data中
if(uni.getStorageSync('key')) data.Tocken=uni.getStorageSync('key');
return new Promise((resolve, reject) => {
//请求时
uni.showLoading();
uniCloud.callFunction({
name,
data
}).then(response=>{
//我这边后台设置的是200为正常获取
if(response.result.code==200){
//有token就进行替换
if(response.result.Token)uni.setStorageSync('key',response.result.Token);
resolve(response.result);
//404为token过期,或者伪造的情况,直接去除本地原来token,并且返回登录页
}else if(response.result.code==404){
uni.removeStorageSync('key');
uni.reLaunch({
url:'/pages/login/login'
})
}else{
reject(response.result)
}
}).catch(error=>{
console.log(error);
uni.showToast({
title:"请求出现异常!",
icon:"none"
})
}).finally(()=>{
//结束时
uni.hideLoading()
})
});
}
export default request
我只对Promise方式接受数据进行了处理,如果是回调函数的形式没有考虑