小程序模板:专业的小程序模板与静态模板分享平台
小程序
教程
搜索
当前位置 : 首页> 小程序教程> 微信小程序 wx.request 的封装

微信小程序 wx.request 的封装

下面是一个简单的封装示例,演示了如何将 wx.request 进行封装,使其更便于使用并处理常见的请求相关逻辑(如错误处理、loading 状态等):

// 封装 request
const request = (url, data = {}, method = 'GET', showLoading = true) => {
  return new Promise((resolve, reject) => {
    if (showLoading) {
      wx.showLoading({
        title: '加载中...',
        mask: true
      });
    }

    wx.request({
      url,
      data,
      method,
      header: {
        'content-type': 'application/json'
      },
      success: (res) => {
        resolve(res.data);
      },
      fail: (err) => {
        reject(err);
      },
      complete: () => {
        if (showLoading) {
          wx.hideLoading();
        }
      }
    });
  });
};

// 使用示例
request('https://api.example.com/posts')
  .then((res) => {
    console.log(res);
    // 处理返回的数据
  })
  .catch((err) => {
    console.error(err);
    // 处理错误情况
  });

在这个示例中,我们定义了一个名为 request 的函数,它接受 url、data、method 和 showLoading 四个参数。

  • url:请求的 URL 地址。

  • data:请求的数据,即请求体。

  • method:请求的方法,默认为 GET。

  • showLoading:是否显示加载中的 loading,默认为 true。

在函数内部,我们使用 new Promise 创建了一个 Promise 对象,将 wx.request 的请求部分放在了 Promise 的 executor 函数中,这样就可以使用 Promise 的语法进行链式调用。

在 wx.request 的回调函数中,我们根据请求的结果调用 resolve 或 reject 方法,以返回请求的结果或处理错误情况。

同时,在请求开始前我们可以选择显示 loading,在请求结束后再隐藏 loading,以提升用户体验。

这个示例只是一个简单的封装,你可以根据自己的需求来进行扩展和优化。

联系客服 意见反馈

签到成功!

已连续签到1天,签到3天将获得积分VIP1天

知道了