http.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { apiCode } from '../config/code'
  2. function isArray (arg) {
  3. return Object.prototype.toString.call(arg) === '[object Array]';
  4. }
  5. export default (config = {}) => {
  6. return new Promise((resolve, reject) => {
  7. wx.showLoading({ title: '数据处理中, 请稍后...', mask: true })
  8. let { query, url } = config
  9. // query 只支持 url rfc 定义的内容
  10. if (query) {
  11. const searchStr = Object.keys(query).map((key) => {
  12. const val = query[key]
  13. return !isArray(val) ? `${key}=${val}` : val.map(it => `${key}=${it}`).join('&')
  14. }).join('&')
  15. const sign = url.indexOf('?') > -1 ? '&' : '?'
  16. url = `${url}${sign}${searchStr}`
  17. }
  18. wx.request({
  19. url: url,
  20. method: config.method,
  21. data: config.data,
  22. success(res) {
  23. wx.hideLoading()
  24. if (res.statusCode === apiCode.success && res.data.code === apiCode.success) {
  25. resolve(res.data)
  26. } else {
  27. reject(res.data.message + "失败")
  28. }
  29. },
  30. error(msg) {
  31. wx.hideLoading()
  32. reject(msg)
  33. }
  34. })
  35. })
  36. }