async-await是ES7的語法,截止我寫這篇文章為止,小程序還是不支持async-await語法的帚呼,所以需要使用regenerator這個庫
下載regenerator,并把regenerator-runtime文件夾放到utils目錄下
封裝wxRequest,讓微信的wx.request API支持async-await語法
const wxRequest = async (url, params = {}) => {
Object.assign(params, {
token: wx.getStorageSync('token')
})
// 所有的請求简软,header默認攜帶token
let header = params.header || {
'Content-Type': 'application/json',
'token': params.token || ''
}
let data = params.data || {}
let method = params.method || 'GET'
// hideLoading可以控制是否顯示加載狀態(tài)
if (!params.hideLoading) {
wx.showLoading({
title: '加載中...',
})
}
let res = await new Promise((resolve, reject) => {
wx.request({
url: url,
method: method,
data: data,
header: header,
success: (res) => {
if (res && res.statusCode == 200) {
resolve(res.data)
} else {
reject(res)
}
},
fail: (err) => {
reject(err)
},
complete: (e) => {
wx.hideLoading()
}
})
})
return res
}
export {
wxRequest
}