request.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. const requestUrl = 'https://unidemo.dcloud.net.cn/ajax/echo/text?name=uni-app'
  2. const duration = 2000
  3. export default {
  4. data() {
  5. return {
  6. title: 'request',
  7. loading: false,
  8. res: ''
  9. }
  10. },
  11. methods: {
  12. //发起请求(Callback);发起请求(Promise);发起请求(Async/Await)
  13. sendRequest(mode) {
  14. this.loading = true;
  15. switch (mode) {
  16. case 'promise':
  17. this._requestPromise();
  18. break;
  19. case 'await':
  20. this._requestAwait();
  21. break;
  22. default:
  23. this._request();
  24. break;
  25. }
  26. },
  27. //发起请求(Callback);
  28. _request() {
  29. uni.request({
  30. url: requestUrl,
  31. dataType: 'text',
  32. data: {
  33. noncestr: Date.now()
  34. },
  35. success: (res) => {
  36. console.log('request success', res)
  37. uni.showToast({
  38. title: '请求成功',
  39. icon: 'success',
  40. mask: true,
  41. duration: duration
  42. });
  43. this.res = '请求结果 : ' + JSON.stringify(res);
  44. },
  45. fail: (err) => {
  46. console.log('request fail', err);
  47. uni.showModal({
  48. content: err.errMsg,
  49. showCancel: false
  50. });
  51. },
  52. complete: () => {
  53. this.loading = false;
  54. }
  55. });
  56. },
  57. //发起请求(Promise)
  58. _requestPromise() {
  59. uni.request({
  60. url: requestUrl,
  61. dataType: 'text',
  62. data: {
  63. noncestr: Date.now()
  64. }
  65. }).then(res => {
  66. console.log('request success', res[1]);
  67. uni.showToast({
  68. title: '请求成功',
  69. icon: 'success',
  70. mask: true,
  71. duration: duration
  72. });
  73. this.res = '请求结果 : ' + JSON.stringify(res[1]);
  74. this.loading = false;
  75. }).catch(err => {
  76. console.log('request fail', err);
  77. uni.showModal({
  78. content: err.errMsg,
  79. showCancel: false
  80. });
  81. this.loading = false;
  82. });
  83. },
  84. //发起请求(Async/Await)
  85. async _requestAwait() {
  86. const [err, res] = await uni.request({
  87. url: requestUrl,
  88. dataType: 'text',
  89. data: {
  90. noncestr: Date.now()
  91. }
  92. });
  93. if (err) {
  94. console.log('request fail', err);
  95. uni.showModal({
  96. content: err.errMsg,
  97. showCancel: false
  98. });
  99. } else {
  100. console.log('request success', res)
  101. uni.showToast({
  102. title: '请求成功',
  103. icon: 'success',
  104. mask: true,
  105. duration: duration
  106. });
  107. this.res = '请求结果 : ' + JSON.stringify(res);
  108. }
  109. this.loading = false;
  110. }
  111. }
  112. }