午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

小程序模板網

小程序 Promise 連續請求服務器寫法,減少代碼量

發布(bu)時間:2018-05-08 14:24 所屬欄目:小程序開發教程

我想(xiang)要(yao)實現的效果是(shi):可以上拉刷(shua)新(xin),下(xia)拉加(jia)載,分(fen)別點擊(ji)tab都還能夠請求服務器(qi)。我想(xiang)的最(zui)好(hao)的方法是(shi)把日期和月(yue)(yue)份(fen)這(zhe)2個抽(chou)離(li)出來做成一個方法,然后上拉刷(shua)新(xin),下(xia)拉加(jia)載,點擊(ji)tab分(fen)別調用日期和月(yue)(yue)份(fen)方法即(ji)可。我嘗(chang)試百度/google,見到(dao)最(zui)多(duo)的鏈式寫法,以獲取用戶(hu)數據舉(ju)例:

 

				
  1. //這里的操作都是舉例說明。
  2. wxLogin()
  3. .then(=>res{
  4. console.log(res.code)
  5. return wxRequest.getUserOpenId(url, params)//請求獲取用戶ID
  6. })
  7. .then(=>res{
  8. console.log(res.openId)
  9. return wxRequest.getUserPhone());//請求獲取用戶手機
  10. })
  11. .catch()

在(zai)index.js頁面(mian) ; getUserOpenId()和getUserPhone()都是封裝在(zai)另外一個(ge)js里面(mian)的(de)。或(huo)者(zhe)是直(zhi)接getUserMessage().then(res=>;).catch();這樣直(zhi)接獲取用戶(hu)數據了。

 

				
  1. wxRequest.getUserMessage()
  2. .then(=>res{
  3. console.log(res.code);
  4. })
  5. .catch()

當(dang)然我這樣(yang)舉例還(huan)是不(bu)能說明(ming)存在(zai)什么問(wen)題(ti),那(nei)(nei)(nei)么如果我要像上(shang)面圖那(nei)(nei)(nei)樣(yang)獲取日(ri)期數(shu)據(ju),月(yue)份數(shu)據(ju)怎么辦呢(ni)?難道按(an)照第一個(ge)那(nei)(nei)(nei)樣(yang)寫(xie),上(shang)拉(la)(la)加載那(nei)(nei)(nei)里(li)寫(xie)一堆(dui),下拉(la)(la)刷新那(nei)(nei)(nei)里(li)一堆(dui),切(qie)換tab也寫(xie)一堆(dui)重復的(de)代(dai)碼?還(huan)是說我管你是上(shang)拉(la)(la)刷新,還(huan)是下拉(la)(la)加載好,我直接通過一個(ge)接口在(zai)一起獲取數(shu)據(ju)?所以我通過百度/google到他們寫(xie)的(de)還(huan)不(bu)夠完善(不(bu)是寫(xie)的(de)不(bu)好哈)  我的(de)寫(xie)法(fa):

 

				
  1. //我只是抽取我部分代碼來展示
  2. Page({
  3. data:{
  4.  
  5. },
  6. onLoad: function () {//生命周期
  7. this.readUserMesage();
  8. },
  9. readUserMesage(): function () {//獲取用戶信息,并獲取按日期的數據
  10. this.showLoading();
  11. let parameters = 'user?ptId=aaaaaaaaaaaaaa';
  12. api.getRequest({
  13. parameters: parameters,
  14. }).then(res => {
  15. return this.readDayData(); //獲取日期信息
  16. }).catch(error => {
  17. this.hideLoading();
  18. });
  19. },
  20. readMonthData() {//把月份單獨抽取出來
  21. var url = 'dailypay?xxxxx=aaaa&yyy=bbbbbb';
  22. var parameters = { parameters: url }
  23. return api.getRequest(parameters)//我這里是封裝請求服務器的,注意我加了return
  24. .then(res => {
  25. //這里就可以獲取到返回的res的集合數據
  26. }).catch(error => {
  27. console.log(JSON.stringify(error));
  28. this.hideLoading();
  29. });
  30. },
  31. readDayData() {//把日期單獨抽取出來
  32. var url = 'dailypay?xxxxx=aaaa&yyy=bbbbbb';
  33. var parameters = { parameters: url }
  34. return api.getRequest(parameters)//我這里是封裝請求服務器的,注意我加了return
  35. .then(res => {
  36. //這里就可以獲取到返回的res的集合數據
  37. }).catch(error => {
  38. this.hideLoading();
  39. });
  40. },
  41. onPullDownRefresh() {//下拉刷新
  42. if (this.data.currentIndex == 0) {//如果當前是在日期
  43. this.readDayData();
  44. } else {//如果當前是在月份
  45. this.readMonthData();
  46. }
  47. },
  48. onReachBottom() {//上拉加載
  49. if (this.data.currentIndex == 0) {
  50. this.readDayData();
  51. } else {
  52. this.readMonthData();
  53. }
  54. },
  55. )}

好了(le),我的方法介(jie)紹完成了(le)。這(zhe)樣(yang)做就可以減少代碼量(liang)了(le)。



易優小(xiao)程序(企業版)+靈活(huo)api+前后代碼開源 碼云倉庫:
本文地址://www.jinyoudianli.com/wxmini/doc/course/24345.html 復制鏈接 如需(xu)定制請聯系易優(you)客服咨詢:

工作日 8:30-12:00 14:30-18:00
周六及部分節假日(ri)提供(gong)值班服(fu)務

易小優
轉人工 ×