小程序:将 wx.request 封装为 promise

2019-04-30  本文已影响0人  神無月拾

具体封装如下 :

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)
  }
  put (url, data) {
    return this.request('PUT', url, data)
  }
  request (method, url, data) {
    const vm = this
    return new Promise((resolve, reject) => {
      wx.request({
        url: vm.withBaseURL ? vm.baseURL + url : url,
        data,
        method,
        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 http = require('../../unitl/http')

libs.request.get('url', data})
.then(res => {
  console.log(res)
})
.catch(e => {
  console.log(e)
})
上一篇下一篇

猜你喜欢

热点阅读