@chenkaixuan000912/uni-app-request
Version:
对uni-app的uni-request与uni-addInterceptor API进行二次封装
53 lines (50 loc) • 1.36 kB
JavaScript
const uniHttp = {
setBase(base){
const httpInterceptor = {
invoke(options){
//判断是否需要拼接地址
if(!options.url.startsWith('http')){
options.url = base.baseUrl + options.url
}
options.timeout = base.timeOut
options.header = {
...options.header,
//请求头标识
...base.headers
}
}
}
uni.addInterceptor('request',httpInterceptor)
uni.addInterceptor('uploadFile',httpInterceptor)
},
setInterceptor(f1,f2,f3){
const http = (options)=>{
return new Promise((resolve,reject)=>{
uni.request({
...options,
success(res){
if(res.statusCode>=200 && res.statusCode<300){
//响应状态码为2xx后的操作
f1(res)
resolve(res.data)
}else{
//响应状态码为2xx以外的操作
f2(res)
reject(res)
}
},
fail(err){
f3(err)
uni.showToast({
icon: 'none',
title: '网络错误,换个网络试试',
})
reject(err)
}
})
})
}
return http
}
}
export default uniHttp