ES6 Class 封装通用网络请求库,通过统一配置、拦截器机制、语义化快捷方法及 UI 集成,提升可扩展性、可维护性与业务适配性。
用 ES6 Class 封装通用网络请求库,核心是把重复的配置、错误处理、状态管理抽出来,让每个请求调用更简洁、更可控。不是简单套个 Promise,而是围绕可扩展性、可维护性和业务适配来设计。
创建一个 HTTP 类,构造函数里预设公共参数:基础 URL、默认超时、通用 header(如 token)、是否自动显示 loading。这些不写死在每次请求里,而由实例或子类接管。
wx.getStorageSync)读取,避免每次传参success/fail 回调封装进 Promise,统一 resolve/reject 逻辑类内部预留 requestInterceptors 和 responseInterceptors 数组,允许在请求发出前或响应返回后插入自定义逻辑。
code === 0 再 resolve 数据;非 2xx 状态码或业务错误码(如 401)触发登出或重试在类原型上暴露 get、post、put、delete 等方法,内部复用统一的 request 主干逻辑。
method,并支持传入 data 或 params(GET 自动拼 query)showLoading: false
async/await 使用,避免嵌套回调把 UI 层交互逻辑也纳入类管理,但保持解耦——通过钩子函数或配置项控制,不强绑定 wx.showToast。
wx.showLoading,结束自动 wx.hideLoading
wx.showToast,内容可由拦截器或响应体决定(如 res.data.msg)silent: true 选项,用于静默请求(如轮询、埋点上报)不复杂但容易忽略细节:比如 token 过期后如何刷新并重发原请求,这类逻辑最好放在响应拦截器里实现,而不是散落在页面代码中。