微信小程序请求封装及案例展示

在微信小程序中必然需要用到请求的封装,简化代码,便于整理,那怎样进行封装请求呢?

一、app.js文件(用于请求地址的整理)

module.exports = {
  memberSearch: '/welkin/wx/member/query', //会员搜索  memberSearch
  queryMemberDetail:"/welkin/wx/member/queryMemberDetail"//会员详情 queryMemberDetail
}

将用到的请求地址暴露出去

二、util.js文件(进行请求的封装promise)

//1.引入api.js
var api = require('api.js');
//2.请求封装
function requestPromise(url, param, method, contentType, tokentype) {
  if (app.globalData.nonetwork) {
    wx.hideLoading()
    wx.showModal({
      title: '提示',
      content: '当前网络不可用,请检查您的网络',
      showCancel: false
    })
    return
  }

  return new Promise((resolve, reject) => {
    /**
     * 重构部分老代码
     * @type {{"content-type": (*|string)}}
     */
    let tempHeader = {
      'content-type': contentType ? contentType : 'application/x-www-form-urlencoded',
    }

    if (tokentype != '1') {
      tempHeader['token'] = app.globalData.code
    }

    let params = {
      storeCode: app.globalData.companyShopCode,
      storeName: app.globalData.companyShop
    }

    params = Object.assign({}, params, param)

    wx.request({
      url: app.globalData.host + url,
      data: params,
      header: tempHeader,
      method: method || 'POST',
      success: function(res) {
        wx.hideLoading();
        resolve(res.data)
      },
      fail: function(res) {
        console.log('请求失败')
        wx.showToast({
          title: res.message,
          icon: 'none',
          duration: 2000
        })
        wx.hideLoading()
        reject(res)
      },
    })
  })
}
//3.暴露出去
module.exports={
    request: requestPromise,
    api: api,
}
//4.页面使用
var util = require('../../../utils/util');
getMemberDetails: function (e) {

    let that = this;
    console.log(that.data);
    let params = {
      cardNum: that.data.cardNum,
      role: that.data.userRoleCode
    };
    wx.showLoading({
      title: '加载中'
    })

    util.request(util.newapi.queryMemberDetail, params, 'POST').then(function (res) {
      wx.hideLoading();
      if (res.code === 1) {
        that.setData({
          MemberDetails: {
            ...res.data.memberInfoVO,
            cardType: res.data.cardType,
            integral: res.data.integral,
          }
        })
      } else {
        wx.showToast({
          title: res.message,
          icon: 'none',
          duration: 2000
        })
      }

    })
  },

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值