小程序get/post的promise简单封装

javascript/jquery

浏览数:217

2020-7-2

封装方法

为小程序wx.request封装promise

rq.js

/*
 * url {String} 请求地址接口  
 * data {Object} 请求参数  
 * param {Object} request参数
 * method {String} 指定使用post或者是get方法
*/
export function request(url, data={}, param={}, method='POST') {
  return new Promise((resolve, reject)=>{
    let postParam = {
      url, 
      method,
      data,
      // timeout
      // dataType
      // responseType
      header: {
        'content-type': 'application/json' // 默认值
      },
      success(res) {
        resolve(res)
      },
      error: function (e) {
        reject(e)
      }
    }
    postParam = Object.assign(postParam, param)
    postParam.fail = postParam.error
    if (postParam.url) wx.request(postParam)
  })
}

module.exports = {
  get(url, data, param){
    return request(url, data={}, param={}, method='GET')
  },
  
  post(){
    return request.apply(null, arguments)
  }
}

使用

const rq = require('./rq')
rq.get('api', {name: '', id: ''}).then(res=>{
  console.log(res)
})

rq.post(
  'api', 
  {name: '', id: ''}, 
  {header: {...}}
).then(res=>{
  console.log(res)
})

源码戳这里

关注小程序

作者:天天修改