封装一个小程序的网络请求库的思路如下:
- 选择一个合适的底层库,比如
wx.request。 - 定义一个函数,用于设置请求参数,如请求地址、请求方法、请求头、请求参数等。
- 定义一个函数,用于发起网络请求,该函数接收一个参数,即请求参数,使用
Promise封装wx.request方法,返回一个Promise对象。 - 可以针对不同的接口,单独封装不同的请求函数,参数为该接口需要的参数。
- 在请求函数中可以添加一些通用的逻辑,比如请求拦截、响应拦截等。
- 可以定义一个全局的错误处理函数,用于统一处理接口请求失败的情况。
- 在小程序的
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) => {
// 处理错误情况
})