请求函数封装promise请求函数
借鉴aioxs
请求函数 -》返回promise对象
请求分为:成功 失败
进行完一系列操作后在微信开发者平台测试的时候,如果有数据更新一定要重新编译刷新一下,代码:
/* 请求函数 @param UniApp.Requestoptions @returns Promise 1.返回Promise对象 2.请求成功 2.1提取核心数据 res.data 2.2添加类型,支持泛型 3.请求失败 3.1网络错误-》提示用户换网络 3.2401错误-》清理用户信息,跳转到登录页 3.3其他错误-》根据后端错误信息轻提示 */ //2.2 添加类型,支持泛型 interface Data<T> { code: string msg: string result: T } export const http = <T>(options: UniApp.RequestOptions) => { //1.返回promise对象 return new Promise<Data<T>>((resolve, reject) => { uni.request({ ...options, //2.请求成功 success(res) { //2.1提取核心数据 res.data if (res.statusCode >= 200 && res.statusCode < 300) { //获取数据成功,调用resolve resolve(res.data as Data<T>) } else if (res.statusCode == 401) { //401错误调用reject //清理用户信息,跳转到登录页 const memberStroe = useMemberStore() memberStroe.clearProfile() uni.navigateTo({ url: 'pages/login/login' }) reject(res) } else { //通用错误,调用reject //根据后端错误信息轻提示 uni.showToast({ icon: 'none', title: (res.data as Data<T>).msg || '请求错误', }) reject(res) } }, //响应失败 fail(err) { //网路错误,调用reject uni.showToast({ icon: 'none', title: '网络错误,换个网络试试', }) reject(err) }, }) }) }
这段代码也写在http.ts里面,测试网络问题的时候模拟器里面的模拟操作->office就是没有网络的意思测试其他错误的时候就就把my.vue里面的url设置没有
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示