import { useUserStore } from '@/stores'
const userStore = useUserStore()
// 定义请求地址 - localhost
export const BASE_URL = "http://192.168.130.25:3000/prod-api"
// 封装请求方法
const request = (obj) => {
obj.url = obj.url || ''; // 请求路径
obj.method = obj.method || 'GET'; //请求方式
obj.data = obj.data || {}; //请求携带的数据
obj.header = obj.header || 'application/json'; //请求头信息 content-type
obj.loading = obj.loading === false ? false : true; //是否显示请求加载中
obj.requestTime = obj.requestTime || 500; //多久时间内完成网络请求,则不显示提示框
obj.enableChunked = obj.enableChunked === true;
obj.responseType = obj.responseType || 'text';
let loadingStatus = true;
let requestTask;
//定义网络请求如果在一定时间内没有完成,则显示加载中提示框,默认时间为:500毫秒
setTimeout(() => {
if (loadingStatus && obj.loading) {2
uni.showLoading({
title: "加载中",
mask: true
})
}
}, obj.requestTime)
//返回Promise对象
const promise = new Promise((resolve, reject) => {
requestTask = uni.request({
url: BASE_URL + obj.url,
method: obj.method,
data: obj.data,
enableChunked: obj.enableChunked,
responseType: obj.responseType,
header: {
'Content-Type': obj.header,
'Authorization': `Bearer ${userStore.userToken}`
},
success: res => {
if(res.data.code !== 401){
resolve(res.data);
} else {
userStore.logOut()
}
},
fail: err => {
reject(err);
},
complete: () => {
if (loadingStatus && obj.loading) {
uni.hideLoading();
}
loadingStatus = false;
}
})
})
promise.requestTask = requestTask
return promise;
}
export default request;
request请求的封装
1 个回复
DCloud_App_Array
success需要等传输完成才会触发。