封装wx小程序的ajax

2019-12-31  本文已影响0人  sorry510

改造wx的ajax为promise,方便使用async和await语法

function request({url, data=null, dataType='json', method='GET'} = {}) {
  return new Promise((resolve, reject) => {
    wx.request({
      url,
      data,
      dataType,
      method,
      header: {
        'content-type': 'application/json', // 默认值
        'openid': wx.getStorageSync('openid')
      },
      success({statusCode, data}) {
        if(statusCode >= 200 && statusCode < 300) {
          if(data.code === 0) {
            resolve(res)
          }else if(data.code === 403) {
            wx.reLaunch({ url: '/pages/error/index' })
          }else {
            wx.showToast({ title: '服务器内部错误', icon: 'none', mask: true })
            reject(res)
          }
        }else {
          wx.showToast({ title: '服务器外部错误或网络问题', icon: 'none', mask: true })
          reject(res)
        }
      },
      fail(res) {
        wx.showToast({ title: '网络问题,请重试', icon: 'none', mask: true })
        reject(res)
      }
    })
  })
}

上一篇下一篇

猜你喜欢

热点阅读