利用Promise封装原生小程序wx.request

先记录一下自用基础版本,防止自己后续忘了。
小程序官方文档可以看这里 wx.request

官方示例:

wx.request({
  url: 'example.php', //仅为示例,并非真实的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' // 默认值
  },
  success (res) {
    console.log(res.data)
  }
})

用起来还是比较麻烦的,我又不想一个个到处复制粘贴的使用,看上去也不够简洁,所以就利用Promise封装了一下,话不多说,直接上代码!

封装 request.js

  /**
      request.js
     * url - 请求地址
     * method - 请求方式
     * data - 请求参数的配置对象
     * header - 请求头的配置对象
 */
  var app = getApp(); //引入全局app.js,我们可以在globalData中定义一些公用的数据,比如baseUrl、token
  module.exports = function ({
    url,
    method,
    data,
    header = {}
  }) {
    return new Promise((resolve, reject) => {
      const token = wx.getStorageSync('token')
      if (token) {
        wx.request({
          url: app.globalData.baseUrl + url,
          method,
          data: method == "GET" ? data : JSON.stringify(data),
          header: {
            'Authorization': token, //这里可以根据业务需求决定是否保留
            ...header
          },
          success: (res) => {
            if (res.statusCode === 200) {
              if (res.data.code !== 200) {
                wx.showToast({
                  title: res.data.msg,
                  icon: 'none',
                })
                reject(res.data.msg)
              } else if (res.data.code == 401) {
                try {
                  wx.setStorageSync('token', "");
                } catch (e) {}
              } else {
                resolve(res.data)
              }
            } else {
              wx.showToast({
                title: res.data.error,
                icon: 'none',
              })
              reject(res.data.error)
            }
          },
          fail: (err) => {
            reject(err)
          }
        })
      } else {
        wx.showToast({
          title: "登录信息不存在或已失效,请重新登录!",
          icon: 'none',
        })
      }
    })
  }

使用

创建跟app.js同级目录的api文件夹统一管理所有的接口

在这里插入图片描述

api/team.js

const request = require("../utils/request") //引入封装好的js文件
module.exports = {
  // 团队详情信息
  getTeamDetailsApi(tid) {
    return request({
      url: '/team/teamDetails/' + tid,
      method: "get",
    })
  },
  // 退出团队
  exitTeamaApi(data) {
    return request({
      url: '/team/exitTeam',
      method: "post",
      data
    })
  },
}

pages/teamDetails/teamDetails.js

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值