request.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import Envs from "./envs"
  2. import store from '../store/store'
  3. const debug = process.env.NODE_ENV !== 'production'
  4. /// 环境对象
  5. class Env {
  6. static defaultEnv = debug ? Envs.dev : Envs.release
  7. static currentEnv() { return Object.values(Envs).find((e)=>e.index==store.state.selectedEnv) ?? Api.defaultEnv }
  8. }
  9. /// 公共请求处理
  10. const request = (config) => {
  11. const defaultHeader = {
  12. "content-type": "application/json"
  13. }
  14. config.url = Env.currentEnv().url + config.url
  15. if (!config.data) config.data = {}
  16. if (!config.method) config.method = 'GET'
  17. if (!config.header) config.header = defaultHeader
  18. if (config.url.indexOf('app_login') === -1) {
  19. config.header['token'] = store.state.userInfo.token
  20. }
  21. console.log(JSON.stringify(config));
  22. let promise = new Promise(function(resolve, reject) {
  23. uni.request(config).then(responses => {
  24. console.log(responses)
  25. if (responses[0]) {
  26. reject({message : "网络超时"})
  27. } else {
  28. let response = responses[1].data // 如果返回的结果是data.data的,嫌麻烦可以用这个,return res,这样只返回一个data
  29. resolve(response)
  30. }
  31. }).catch(error => {
  32. console.log(error)
  33. reject(error)
  34. })
  35. })
  36. return promise
  37. };
  38. export default request