前言
之前封装了一次wx.reques
t方法,发现很容易陷入回调地狱,用Promise修改一下。前文链接
利用Promise
const fetch = (options) => {
return new Promise((resolve, reject) => {
let defaultOptions = {
url: baseUrl,
method: 'GET',
data: null,
success(data) {
if (data.statusCode === 200 && data.data.code === 200) {
resolve(data.data)
} else {
if (data.data) {
reject(data.data.msg)
} else {
reject(data.errMsg)
}
}
},
fail(data) {
reject(data)
}
}
if (typeof options === 'string') {
if (options.startsWith('/')) {
defaultOptions.url += options
} else throw new Error('Illegal param.')
} else if (typeof options === 'object') { // 应该需要检查传入的数据格式
defaultOptions = Object.assign(defaultOptions, options)
}
wx.request(defaultOptions);
})
}