-
把wx.request封装成了Promise风格的。使用的时候使用get、post等方法即可。支持添加拦截器,可以单独设置header、token、baseUrl等。下面以post方法为例。
-
引入js文件:
import req from '../../utils/Request.js'
-
配置Request,一般在小程序App.js>onLaunch方法中配置
configReq(){ //配置baseUrl和拦截器,baseUrl例如 /api req.baseUrl(config.serverUrl) .interceptor(res=>{ switch(res.data.code){ case 401: wx.showToast({ icon: 'loading', title: '重新登录', }) this.login() return false; case 0: return true; default: wx.showToast({ title: '操作失败', }) return false; } }) },
-
登录成功后设置token
req.token(token)
-
发起网络请求
req.post('/goods',data,header) .then(res=>res.data.data) .then(data=>{ wx.showToast({ title:'创建成功' }) })
-
wx api里面很多操作都是异步的,基本上参数形式都差不多.这里做了Promise封装,方法名称、参数和官方api一致,只是参数里面不用传success、fail回调。以showToast为例,简单对比一下:
常规用法:
wx.showToast({
title: '成功',
icon: 'success',
duration: 2000,
success: ()=>{
console.log('调用成功')
},
fail: err=>{
console.error('调用失败',err)
}
})
Promise用法:
import Wx from 'Wx.js'
Wx.showToast({
title: '成功',
icon: 'success',
duration: 2000,
}).then(()=>{
console.log('调用成功')
}).catch(err=>{
console.error('调用失败',err)
})
其他的api用法都一样,方法、参数、返回值可以参考官方文档。如果有错误或者有缺失的,欢迎提issue.