微信小程序将 wx.request 封装为promise对象

前言

前端是个更新节奏很快的行业,没有谁可以说掌握所有前端知识,我们都是在学习一些心的、更新一些旧的,抛弃一些被放弃的。

使用promise封装wx.request

class Request {
  constructor (parms) {
    this.withBaseURL = parms.withBaseURL
    this.baseURL = parms.baseURL
  }
  get (url, data) {
    return this.request('GET', url, data)
  }
  post (url, data) {
    return this.request('POST', url, data, "application/x-www-form-urlencoded")
  }
  put (url, data) {
    return this.request('PUT', url, data)
  }
  request (method, url, data, conten_type) {
    const vm = this
    return new Promise((resolve, reject) => {
      wx.request({
        url: vm.withBaseURL ? vm.baseURL + url : url,
        data,
        header: {
            'content-type': conten_type
        },
        method,
        dataType: 'json',
        responseType: 'text',
        success (res) {
          resolve(res)
        },
        fail () {
          reject({
            msg: '请求失败',
            url: vm.withBaseURL ? vm.baseURL + url : url,
            method,
            data
          })
        }
      })
    })
  }
}

const request = new Request({
  baseURL: 'http://test',
  withBaseURL: true
})

module.exports = request

使用的时候
其他页面

const requests = require('/request/request')

requests.request.get('/aaa', {
  a: 0,
  b: 1
}).then(res => {
  console.log(res)
}).catch(e => {
  console.log(e)
})

转载:https://www.jianshu.com/p/8b1aae0f194b

后言

千里之行始于足下,来吧,为前端奉上一朵小火花;whj.

你可能感兴趣的:(前端)