简单封装request请求
const BASE_URL = 'https:/***.****.com'
const urls = ['/login']
function request(url, data = {}, method = 'GET', showToast = true) {
// 获取本地token
let token = wx.getStorageSync('token') || ''
// 如果未登录 && 访问的接口不是指定接口 则跳转到登录页面
if (!token && !urls.some((item) => item == url)) {
// 还没登录呢~
return wx.navigateTo({
url: '/pages/signin/signin',
})
}
if (showToast) {
wx.showLoading({
title: '加载中',
})
}
// 使用Promise封装一层
return new Promise((resolve, reject) => {
wx.request({
url: `${BASE_URL}${url}`,
method,
data,
header: {
'Content-type': 'application/x-www-form-urlencoded',
token
},
// 成功的回调函数
success(res) {
if (res.data.ec === 200) {
// 将response的数据resolve出去
resolve(res.data)
} else if (res.data.ec === 300) {
// 登录过期 || 尚未登录~
return wx.navigateTo({
url: '/pages/signin/signin',
})
} else {
wx.showToast({
title: res.data.em || '请求失败',
icon: 'error'
})
resolve(res);
}
},
fail(error) {
wx.showToast({
title: '请求失败',
icon: 'error'
})
reject(error);
},
complete() {
wx.hideLoading()
}
})
})
}
export {
request
}