[小程序] 第1440天 如何封装一个小程序的网络请求库?请说说你的思路

104 阅读1分钟

cover.png

封装一个小程序的网络请求库的思路如下:

  1. 选择一个合适的底层库,比如 wx.request
  2. 定义一个函数,用于设置请求参数,如请求地址、请求方法、请求头、请求参数等。
  3. 定义一个函数,用于发起网络请求,该函数接收一个参数,即请求参数,使用 Promise 封装 wx.request 方法,返回一个 Promise 对象。
  4. 可以针对不同的接口,单独封装不同的请求函数,参数为该接口需要的参数。
  5. 在请求函数中可以添加一些通用的逻辑,比如请求拦截、响应拦截等。
  6. 可以定义一个全局的错误处理函数,用于统一处理接口请求失败的情况。
  7. 在小程序的 app.js 中,将封装好的网络请求库挂载到全局变量上,以便在需要时调用。

简单的示例代码

// 封装网络请求库
const request = (url, data, method = 'GET', header = {}) => {
  return new Promise((resolve, reject) => {
    // 在请求前做一些通用的操作,比如请求拦截等
    wx.request({
      url,
      data,
      method,
      header,
      success: (res) => {
        // 在请求成功后做一些通用的操作,比如响应拦截等
        resolve(res.data)
      },
      fail: (err) => {
        // 在请求失败后做一些通用的操作,比如全局错误处理等
        reject(err)
      }
    })
  })
}

// 封装请求函数
const getUserInfo = (params) => {
  return request('/api/user/info', params)
}

// 将网络请求库挂载到全局变量上
App({
  request,
  getUserInfo,
  // ...
})

在需要调用请求接口的地方,可以直接通过App对象调用封装好的请求函数:

App.getUserInfo({ userId: 1 })
  .then((res) => {
    // 处理响应结果
  })
  .catch((err) => {
    // 处理错误情况
  })

更多题目

github.com/haizlin/fe-…