tools.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. const app = require('../utils/util.js');
  2. const request = (url, data = {}, type = 'GET') => {
  3. return new Promise((resolve, reject) => {
  4. wx.request({
  5. url: `${app.globalData.publicUrl}${url}`,
  6. method: type,
  7. data,
  8. success({
  9. data
  10. }) {
  11. resolve({
  12. status: 0,
  13. data,
  14. msg: 'request请求成功获取到数据'
  15. });
  16. },
  17. fail(error) {
  18. reject({
  19. status: 1,
  20. msg: 'request请求失败'
  21. })
  22. }
  23. });
  24. });
  25. };
  26. const checkSessionAndLogin = () => {
  27. return new Promise((resolve, reject) => {
  28. wx.checkSession({
  29. success() {
  30. const sessionKey = wx.getStorageSync('sessionKey');
  31. wx.request({
  32. url: app.globalData.publicUrl + '/wx/student/inspectSession',
  33. method: "post",
  34. data: {
  35. sessionKey: sessionKey
  36. },
  37. success: (res) => {
  38. if (res.data.msg == 0) {
  39. reject('error');
  40. } else {
  41. resolve(sessionKey);
  42. }
  43. }
  44. })
  45. },
  46. fail() {
  47. reject('error');
  48. }
  49. });
  50. }).then(value => {
  51. return new Promise((resolve, reject) => {
  52. if (value != '') {
  53. resolve({
  54. status: 0,
  55. sessionKey,
  56. type: 'sessionKey',
  57. msg: 'checkSession成功获取到sessionKey'
  58. });
  59. } else {
  60. throw 1;
  61. }
  62. });
  63. }).catch(reason => {
  64. return new Promise((resolve, reject) => {
  65. wx.login({
  66. success(res) {
  67. if (res.code) {
  68. resolve({
  69. status: 0,
  70. data: res.code,
  71. type: 'code',
  72. msg: '成功获取到code'
  73. });
  74. } else {
  75. reject({
  76. status: 1,
  77. msg: '获取sessionKey失败'
  78. });
  79. }
  80. }
  81. });
  82. });
  83. }).then(
  84. value => {
  85. return new Promise(async (resolve, reject) => {
  86. if (value.type == 'code') {
  87. const url = '/wx/user/wx7e7a46e129d6cd0f/login';
  88. const {
  89. data
  90. } = await request(url, {
  91. code: value.data
  92. }, 'GET');
  93. wx.setStorageSync('sessionKey', data.sessionKey);
  94. resolve(data.sessionKey);
  95. } else {
  96. resolve(value);
  97. }
  98. });
  99. }
  100. );
  101. };
  102. // const scalarArrayEquals = function (array1, array2) {
  103. // return array1.length == array2.length && array1.every(function (v, i) {
  104. // return v === array2[i]
  105. // });
  106. // }
  107. module.exports = {
  108. request,
  109. checkSessionAndLogin
  110. // scalarArrayEquals
  111. }