uniapp封装promise请求
// 必须对外暴露一个方法,而且得返回一个promise对象const BASE_URL = 'http://119.29.194.223:88'function request({url,method = 'GET',isAuth,data = {},}) {return new Promise((resolve, reject) => {// 默认header是空对象,用户无须登陆态,h
·
// 必须对外暴露一个方法,而且得返回一个promise对象
const BASE_URL = 'http://119.29.194.223:88'
function request({
url,
method = 'GET',
isAuth,
data = {},
}) {
return new Promise((resolve, reject) => {
// 默认header是空对象,用户无须登陆态,header可以传空对象
let header = {}
// 需要登陆态
if (isAuth) {
let token = uni.getStorageSync('token')
// 如果没有token,跳转login
if (!token) {
uni.navigateTo({
url: '/pages/login/login.vue'
})
// return reject(new Error('请先登录'))
}
// 如果需要登陆态,就传递token,否则就不传
header.Authorization = token
}
// 请求前,开启Loading
uni.showLoading({
title: '加载中...',
mask: true
});
uni.request({
url: BASE_URL + url,
method,
// header:header,
header,
data,
success: res => {
// 解构返回的数据
let {
msg,
status,
data
} = res.data
if (status === 1000) {
// 如果meta.status===200,才表示数据是正确
resolve(data)
}else{
uni.showModal({
content: msg,
showCancel:false
})
reject(msg)
}
},
fail() {
// 一般是网络错误
uni.showModal({
content:'网络错误请重试',
showCancel:false
})
reject(new Error('网络错误请重试'))
},
complete() {
// 请求结束后关闭Loading
uni.hideLoading()
}
});
})
}
export default request
在main.js引入放到原型里
// 导入request
import request from "./utils/request.js"
// 把request添加的Vue的原型中
Vue.prototype.$request = request
页面使用,在需要验证token的接口,就传入参数 isAuth:'true' 就行了
async chongzhiData() {
let data = await this.$request({
url: '/api/Yun/getindexchong?symbol=USDT',
isAuth: 'true',
});
// console.log(res.data);
this.weixinUrl = data.address;
for (let i = 0; i < data.symbol.length; i++) {
this.array.push(data.symbol[i].name)
this.lian_address.push(data.symbol[i].lian_address)
};
// console.log(this.array)
},
更多推荐
已为社区贡献1条内容
所有评论(0)