wx小程序request请求在项目实战中的封装
前沿
在小程序项目开发中,对请求做封装是比较常见的操作,我们可以在封装过的请求里,做一些统一处理,比如统一配置、请求拦截、错误异常处理、授权处理等
好了,我们直接看干货,上代码
request封装
在项目根目录下新建一个request目录,再在目录下新建一个index.js文件,文件里的内容如下import { BASE_API_URL, TIME_OUT, STATUS_CODE_OK } from "../config/index.js" // opt是配置参数,不传就是空对象 const request = (opt = {}) => { // 请求是异步的,我们返回一个Promise return new Promise((resolve, reject) => { // wx小程序定义的全局属性 // 比如用户登录成功后,后台生成的token可以放这里 let globalData = getApp().globalData // 请求开始前,加遮罩,防止重复提交 // loadingTitle自定义加载的文字 wx.showLoading({ title: opt.loadingTitle || "加载中", mask: true }) // 微信小程序请求 wx.request({ header: { // contentType设置,默认是query的方式 // 可能通过opt.contentType定义为"application/json" "content-type": opt.contentType || "application/x-www-form-urlencoded", // jwt的token,用户登录后,后台生成的token // 每次请求的时候带上,可以校验当前用户是否全法 "Authorization": globalData.token }, // 请求超时时间,一般60秒 timeout: TIME_OUT, // 请求的url // BASE_API_URL是api请求的统一前缀 url: BASE_API_URL + opt.url, // 请求时需要带的参数 data: opt.data || {}, // 请求的方法,默认POST method: opt.method || "POST", // 请求成功处理 success(res) { // statusCode如果是401,代表这次请求不合法 if (res.statusCode === 401) { // 弹窗提醒 wx.showModal({ title: "警告", showCancel: false, content: "当前用户信息已失效,请退出小程序重新进入", confirmText: "确认", success() { // 并清空全局对象的用户信息 globalData = { userInfo: {}, token: "" } // reject处理,代表请求不成功 reject("请求失效") } }) } else { // 后台返回的请求code码为非正常码 // 代表业务处理有异常 // 统一处理,在页面上显示异常信息,提醒用户 if (res.data.code !== STATUS_CODE_OK) { // 这个是自己封装的一个toast方法 notifyError(res.data.msg) } // 返回后台给到的数据 resolve(res.data) } }, // 请求失败处理 fail(err) { // 把错误信息弹窗显示,提醒用户 wx.showModal({ title: "警告", showCancel: false, content: JSON.stringify(err), confirmText: "确认", }) // reject处理,代表请求不成功 reject("fail") }, // 无论请求成功与失败都会走的方法 complete() { // 关闭请求中的遮罩 wx.hideLoading() } }) }) } export default request 使用// 引入封装的request import request from "../request/index.js" // 获取个人用户的区域列表 request({ // 请求的方法 method: "POST", // 请求的url url: "/xxx/xxx", // 请求参数 data: { username:"xxx", password:"xxx" } }).then(res=>{ // 请求拿到的数据 console.log(res) }).catch(err){ // 请求异常拿到的数据 console.log(err) }
好了,wx小程序request请求封装就到这了
觉得效果不错的请帮忙加个关注点个赞,经常分享前端实用开发技巧
乐歌M2站立办公升降桌初体验铛铛铛铛,收到乐歌M2站立办公升降桌这个大家伙已经一周了,再次感谢ZEALERApp赠送体验。这次就来详细汇报一下个人的初体验感受,希望能给关注升降办公桌的小伙伴们一点参考意见。因
2022年8还好用吗?升级15。2。1会变卡吗?字打太多根本没人看,所以咱们长话短说。8在日常使用速度上虽然不及12等机型,但日常使用也不会出现明显卡顿,除了和平精英玩其它东西还没有出现过状况,我玩吃鸡后手机出现了明显的卡顿变慢
中兴亮剑!201TB,5000mAh120W,还有顶级4nm坐镇按照目前手机界的发展近况来看,一大波新机已经在路上了,目前除了定档二月中下旬要发布的K50电竞版,下面打磨中的依次有红米K50系列的骁龙870天玑8000天玑9000以及骁龙8Ge
倔强中兴继续发力,4nm强机来袭,升级201TB存储6000mAh强续航对于当下激烈的市场竞争,性价比显得尤为重要,不少友商都在拼堆料,就连沉寂中兴的也开始再次发力,很有卷土重来之势。在刚过去的这一年里,中兴的市场表现的确很出乎意料,一口气发布了好几款
OPPOFindX5即将发布首发联发科天玑9000与哈苏合作手机中国新闻OPPO即将在2月召开新品春季发布会,已知在这场发布会上的主角会是即将发布的OPPOFindX5,按照惯例这款新机型将会是OPPO的年度旗舰,如今越来越多的爆料信息也让
特斯拉第四家电池供应商呼之欲出长期以来松下是特斯拉唯一御用电池供应商。从roadster,modelsxmodel3y,十多年风雨同舟。松下还拥有特斯拉大量股票,特斯拉和松下在内华达建有合资电池工厂。生产的镍钴
行业分析新能源之光伏概述太阳能是未来最清洁,最安全,最可靠的能源!太阳能利用的最佳方式是光电转换,太阳光照射到硅材料上,利用光伏效应,产生直流电,直接发电。以硅材料光电转换为核心的开发应用形成的产业链
spring循环依赖三级缓存循环依赖BeanFactory作为bean工厂管理我们的单例bean,那么肯定需要有个缓存来存储这些单例bean,在Spring中就是一个Map结构的缓存,key为beanName
iOS15。3准正式版,终于来了1月21日消息历经一个多月,经过3个版本的更新迭代,iOS15。3终于在今日凌晨发布终极测试版,即iOS15。3RC。本次RC版更新后版本号为19D49,与之同时更新的还有macO
建筑行业走下坡路了吗?建筑行业现在的确是在走下坡路,每个行业都有波峰和波谷,建筑行业经过几十年的野蛮发展,现在也处于正常的波动周期。国家的大基建开始放缓,就算没有疫情影响,国家也不会大力发展基建,后续的
2021年10大风口,7个已熄火2021年,是新商业大变局的一年,互联网红利趋于消失。来源Tech星球,tech618很多人感叹,甚至连字节跳动都停止了用户增长,移动互联网再难创造新奇迹。于是,互联网巨头悄然实施