当前位置:   article > 正文

微信小程序ajax请求封装_微信小程序 封装 ajax

微信小程序 封装 ajax

虽然小程序有自己的ajax请求封装,但是写多了代码就比较冗余,我们可以基于小程序的ajax请求去自己封装promise请求,这样可以使代码看起来更加的简洁,同时还能解决一些因为异步请求带来的问题。

在app.js中添加接口封装方法

  1. ajax(method, url, option){
  2. wx.showLoading({
  3. title: '加载中...'
  4. });
  5. let methodType = 'application/json';
  6. if(method=='POST'){
  7. methodType = 'application/x-www-form-urlencoded'
  8. }
  9. let urlHead='https://xxx.com/' //请求头
  10. let requestUrl=urlHead+url;
  11. return new Promise((resolve,reject)=>{
  12. wx.request({
  13. url: requestUrl,
  14. method:method,
  15. data:option,
  16. header: {
  17. 'content-type': methodType
  18. },
  19. success:res=>{
  20. wx.hideLoading();
  21. let statusCode = res.statusCode
  22. if (statusCode >= 200 && statusCode < 300) {
  23. resolve(res.data)
  24. } else {
  25. console.log('请求失败')
  26. wx.showToast({
  27. icon:'none',
  28. title: res.data.message
  29. });
  30. reject(res.data)
  31. }
  32. },
  33. fail:err=>{
  34. console.log(err)
  35. }
  36. });
  37. })
  38. },

页面中调用时

  1. const app = getApp();
  2. import regeneratorRuntime from '../../libs/runtime.js' //这个很重要
  3. //经过微信开发者工具的不断升级,
  4. //它的“ES6转ES5”的功能也渐渐有了加强,
  5. //所以要用async/await的话,已经不需要如本文中描述的使用额外的gulp和babel来自己做预编译工作,
  6. //只需要引入regenerator runtime就可以了。
  7. Page({
  8. onLoad(){
  9. this.testMethod()
  10. }
  11. async testMethod(){
  12. let url="/xxx"
  13. let data = await app.ajax('GET',url,{data:123});
  14. console.log(data)
  15. }
  16. })

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/148005
推荐阅读
相关标签
  

闽ICP备14008679号