network.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /**
  2. * Created by 23hp on 2018/3/30.
  3. * 基于Promise的网络请求库,包含GET POST请求,上传下载功能
  4. * 使用方法:
  5. * 先引入: import {get,post,...} from 本文件;
  6. * · get请求: get("/index",{id:2}).then(data=>{}).catch(error=>{});
  7. * · post请求: post("/index",{id:2}).then(data=>{}).catch(error=>{});
  8. * Promise详细介绍:
  9. * http://es6.ruanyifeng.com/#docs/promise
  10. */
  11. /**
  12. * 发起get请求
  13. * @param url 请求路径 必填
  14. * @param data 请求参数 get请求的参数会自动拼到地址后面
  15. * @param headers 请求头 选填
  16. * @returns {Promise}
  17. */
  18. export const get = (url, data, headers) => request('GET', url, data, headers);
  19. /**
  20. * 发起post请求
  21. * @param url 请求路径 必填
  22. * @param data 请求参数
  23. * @param headers 请求头 选填
  24. * @returns {Promise}
  25. */
  26. export const post = (url, data, headers) => request('POST', url, data, headers);
  27. /**
  28. * 发起put请求
  29. * @param url 请求路径 必填
  30. * @param data 请求参数
  31. * @param headers 请求头 选填
  32. * @returns {Promise}
  33. */
  34. export const put = (url, data, headers) => request('PUT', url, data, headers);
  35. /**
  36. * 发起delete请求
  37. * @param url 请求路径 必填
  38. * @param data 请求参数 delete请求的参数会自动拼到地址后面
  39. * @param headers 请求头 选填
  40. * @returns {Promise}
  41. */
  42. export const del = (url, data, headers) => request('DELETE', url, data, headers);
  43. /**
  44. * 接口请求基类方法
  45. * @param method 请求方法 必填
  46. * @param url 请求路径 必填
  47. * @param data 请求参数
  48. * @param header 请求头 选填
  49. * @returns {Promise}
  50. */
  51. export function request(method, url, data, header = {'Content-Type': 'application/json'}) {
  52. console.group('==============>新请求<==============');
  53. console.info(method, url);
  54. if(data) console.info('参数:',data);
  55. return new Promise((resolve, reject) => {
  56. const response = {};
  57. wx.request({
  58. url, method, data, header,
  59. success: (res) => response.success = res.data,
  60. fail: (error) => response.fail = error,
  61. complete() {
  62. if (response.success) {
  63. console.info('请求成功:', response.success);
  64. resolve(response.success)
  65. } else {
  66. console.info('请求失败:', response.fail);
  67. reject(response.fail)
  68. }
  69. console.groupEnd();
  70. },
  71. });
  72. });
  73. }