一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

注冊(cè)登錄

微信小程序wx.request異步解決方案

2020-09-28
導(dǎo)讀:見(jiàn)到 wx.request 的第一眼,就讓我想起了 $.ajax 這東西,使用起來(lái)確實(shí)有很多不方便,不能忍,幸好小程序是支持ES6語(yǔ)法的,所以可以使用promise稍加改造。 先來(lái)說(shuō)說(shuō)wx.request為什么不能忍...

見(jiàn)到wx.request的第一眼,就讓我想起了$.ajax這東西,使用起來(lái)確實(shí)有很多不方便,不能忍,幸好小程序是支持ES6語(yǔ)法的,所以可以使用promise稍加改造。

先來(lái)說(shuō)說(shuō)wx.request為什么不能忍。

鋪墊:“看得見(jiàn)卻抓不住“的異步請(qǐng)求

微信小程序wx.request異步解決方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Page({
  data: {
    myData: ''
  },
  // loadMyData函數(shù)用于打印myData的值
  loadMyData () {
    console.log('獲取到的數(shù)據(jù)為:' + this.data.myData)
  },
  // 生命周期函數(shù)onload用于監(jiān)聽(tīng)頁(yè)面加載
  onload: function () {
    wx.request({
      url: 'https://api',  // 某個(gè)api接口地址
      success: res => {
        console.log(res.data)
        this.setData({
          myData: res.data
        })
        console.log(this.data.myData)
      }
    })
    // 調(diào)用之前的函數(shù)
    this.loadMyData()
  }
})

這其實(shí)是一個(gè)很簡(jiǎn)單的異步問(wèn)題,wx.request是異步請(qǐng)求,JS不會(huì)等待wx.request執(zhí)行完畢再往下執(zhí)行,所以JS按順序會(huì)先執(zhí)行this.loadMyData(),等服務(wù)器返回?cái)?shù)據(jù)以后,loadMyData()早就執(zhí)行完了,當(dāng)然也就沒(méi)有拿到值啦。

其實(shí)我們?cè)谕搅鞒讨胁耪f(shuō)“返回”,異步?jīng)]有“返回”這個(gè)概念(或者說(shuō)異步返回是沒(méi)有意義的),異步對(duì)應(yīng)的是“回調(diào)”,也就是說(shuō),對(duì)于一個(gè)異步函數(shù),我們應(yīng)該傳入一個(gè)“回調(diào)函數(shù)”來(lái)接收結(jié)果。

初步解決:通過(guò)回調(diào)接收結(jié)果

最簡(jiǎn)單的解決方案,就是把需要使用異步數(shù)據(jù)的函數(shù)寫(xiě)在回調(diào)里:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
onload: function () {
  wx.request({
    url: 'https://api',  // 某個(gè)api接口地址
    success: res => {
      console.log(res.data)
      this.setData({
        myData: res.data
      })
      console.log(this.data.myData)
      // 把使用數(shù)據(jù)的函數(shù)寫(xiě)在回調(diào)函數(shù)success中
      this.loadMyData()
    }
  })
}

這樣就可以正確輸出了:

 

但是如果邏輯復(fù)雜,需要多層異步操作,會(huì)出現(xiàn)怎么樣的情況呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
asyncFn1(function(){
  //...
  asyncFn2(function(){
    //...
    asyncFn3(function(){
      //...
      asyncFn4(function(){
        //...
        asyncFn5(function(){
           //...
        });
      });
    });
  });
});

有沒(méi)有感覺(jué)頭皮發(fā)麻?什么優(yōu)雅什么可讀性,瞬間蕩然無(wú)存,這就是恐怖的“回調(diào)地獄”(Callback Hell)。

而我們發(fā)現(xiàn),微信小程序的網(wǎng)絡(luò)請(qǐng)求wx.request,也正是這種依靠回調(diào)函數(shù)的形式,類似于以前的$.ajax,它在邏輯復(fù)雜、頁(yè)面執(zhí)行順序要求多的情況下,弊端也是很明顯的。不過(guò)好在小程序支持ES6,我們可以盡情地?fù)肀romise!

使用Promise包裝wx.request

Promise這東西簡(jiǎn)單說(shuō)來(lái)就是,它可以將異步的執(zhí)行邏輯和結(jié)果處理分離,摒棄了一層又一層的回調(diào)嵌套,使得處理邏輯更加清晰。想具體了解的還請(qǐng)自行查找資料。

現(xiàn)在我們就用Promise包裝一下wx.request:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * requestPromise用于將wx.request改寫(xiě)成Promise方式
 * @param:{string} myUrl 接口地址
 * @return: Promise實(shí)例對(duì)象
 */
const requestPromise = myUrl => {
  // 返回一個(gè)Promise實(shí)例對(duì)象
  return new Promise((resolve, reject) => {
    wx.request({
      url: myUrl,
      success: res => resolve(res)
    })
  })
}
// 我把這個(gè)函數(shù)放在了utils.js中,這樣在需要時(shí)可以直接引入
module.exports = requestPromise

 

現(xiàn)在再使用試試:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 引用模塊
const utilApi = require('../../utils/util.js')
Page({
  ...
  // 生命周期函數(shù)onload用于監(jiān)聽(tīng)頁(yè)面加載
  onLoad: function () {
    utilApi.requestPromise("https://www.bilibili.com/index/ding.json")
    // 使用.then處理結(jié)果
    .then(res => {
      console.log(res.data)
      this.setData({
        myData: res.data
      })
      console.log(this.data.myData)
      this.loadMyData()
    })
  }
})

結(jié)果和使用回調(diào)函數(shù)一致。當(dāng)有多個(gè)異步請(qǐng)求時(shí),直接不斷地.then(fn)去處理即可,邏輯清晰。

當(dāng)然,這里只是寫(xiě)了一個(gè)最簡(jiǎn)單的Promise函數(shù),還不完整。更完整的Promise化wx.request,等以后業(yè)務(wù)需要再完善吧。另外各種小程序開(kāi)發(fā)框架也都有了現(xiàn)成的promise化API,拿來(lái)即用。

重磅推薦:小程序開(kāi)店目錄

第一部分:小商店是什么

第二部分:如何開(kāi)通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開(kāi)店任務(wù)常見(jiàn)問(wèn)題

第五部分:小商店可以賣(mài)什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開(kāi)發(fā)

電話咨詢 微信咨詢 預(yù)約演示 0元開(kāi)店
主站蜘蛛池模板: 青青青在线视频国产|亚洲精华国产精华液|伊人网综|国产免费久久精品久久久|一本丁香综合久久久久不卡网站|国产毛片精品国产一区二区三区 | 肉体裸体xxxxx免费观看|国产乱妇乱子在线播放视频|日本免费无遮挡毛片的意义|国产无套乱子伦精彩无码视频|国产一区二区h|亚洲色图网址 | 桃色=aV久久无码线观看|东方=aⅴ免费观看久久=av|深夜福利1000|成本人片无码中文字幕免费|成人国产精品一级毛片视频|免费一级黄色毛片 男同免费|久久久久久草莓香蕉步兵|亚洲女女女同性VIDEO|免费的=av不用播放器的|黄频网站在线观看|久久久88 | 久久91|伊人网中文字幕|9191免费视频|黄动漫免费在线观看|女人和拘做受大片免费看|精品无线一线二线三线 | 久久毛片免费看一区二区三区|国产毛多水多高潮高清|一级黄色毛片|久久久久久久网|国产精品美女久久久久=av爽李琼|天天摸天天摸色综合舒服网 | 精品国产成人一区二区99|综合一区在线观看|成人婷婷网色偷偷亚洲男人的天堂|欧美综合图区|国产精品=a无线|亚洲国产精品成人久久久麻豆 | #NAME?|中文视频一区|亚洲第一=av男人的天堂|精品成人=av|日韩高清dvd碟片|日韩精品资源在线观看 | 色综合久久综合中文综合网|午夜福利国产在线观看1|毛片免费视频观看|黑人把女人弄到高潮视频|www.国产精品视频|免费色网 | 免费观看=a级毛片在线播放|特极毛片|男男做爰猛烈叫床视频gv|亚洲日本在线在线看片4k超清|一级黄色免费观看视频|亚洲第一福利网站在线观看 | www.=av视频在线|人人爽人人人爽人人爽|在线看自拍|免费午夜无码片在线观看影院|久热91|三级小说欧洲区亚洲区 | 国内精品久久久久久TV|久久叉叉|动漫=av网|欧美巨猛xxxx猛交黑人97人|亚洲人免费视频|欧洲成年人性生活免费视频 | 国产重口扩张91|桃色视频在线播放|亚洲自拍另类欧美丝袜|成人=av在线网站|色花=av|91影视大全 | xvideos国产在线观看|国内精自视频品线一区|国产免费久久精品99RESW=aG|又大又长粗又爽又黄少妇视频|毛片大片|成人一区二区三区在线 | 国产=a级一区二区|免费观看=av福利片|欧美一二三区精品|一本到无码=aV专区无码|好爽...又高潮了毛片|精品人人搡人妻人人玩=a片 | 蜜臀91精品一区二区三区|亚洲中出视频|啪啪玩小处雏女|精品日韩一区二区|久久婷婷综合色丁香五月|亚洲视频在线观看网站 | 亚洲精品一二三|一本色道久久综合狠狠躁邻居|国产精品乱码一二三区的特点|国产粉嫩高中无套进入|亚洲欧美日韩愉拍自拍|2017男人天堂手机在线 | 唯美清纯亚洲|最近的2019免费中文字幕|西西人体www大胆高清视频|成人超碰97|婷婷射吧|亚欧洲精品视频免费观看mv在线观看 | 亚洲精品无码成人=a片|国产美女口爆吞精普通话|国产精品国产三级国产专播i12|91精品国产一区自在线拍|日韩特级|成人在线免费观看小视频 | 免费=av成人|無碼噴水國產高潮=aV|www.91麻豆|亚洲欧美视频一级|欧美一站二站|91在线日本 | 亚洲精品.www|亚洲精品无码久久久影院相关影片|欧美日韩视频网站|在线观看潮喷失禁大喷水无码|免费看一区二区成人=a片|亚洲国产高清不卡视频 | 91视频网国产|粗大猛烈进出高潮视频|精品国产乱码久久久人妻|亚洲精品无码久久毛片波多野吉衣|成人久久免费视频|国产美女自拍 | 小柔在教室轮流澡到高潮视频|大乳boobs巨大吃奶乳水|蜜桃=av鲁一鲁一鲁一鲁|亚洲少妇综合网|国产亚洲精品码|免费看国产精品视频 | 成年人天堂com|亚洲无线看|97成人啪啪网|国产精品无码一二区免费播放|亚洲精品国产福利一二区|农村乱人伦一区二区 | 国产一区二区三区精品久久久|欧美午夜一区二区|久草新免费|91=av成人|男人午夜在线|亚洲欧美国产vr在线观 | WWW免费视频在线观看播放|欧美日本一道本一区二区|999在线精品视频|国产十日韩十欧美|天堂网中文字幕在线观看|日韩一二三四 | 亚州一级|国产精品毛片视频|成人免费视频播放|综合免费视频|女人体1963|欧美人与动牲交视频在线观看 | 国产亚洲精品一区二区三区|狠狠插综合网|把女人弄爽特黄=a大片3人|国产精品99久久久久久人免费|永夜星河免费在线观看|日日做=a爰片久久毛片=a片英语 | 精品国产31久久久久久|免费在线影视观看入口|午夜宅男影院|天天色天天色天天色|日韩=av片免费在线观看|上流社会在线观看免费 | 伊人偷拍视频|久久久久99精品成人片三人毛片|午夜影院中文字幕|J=aP=aNESE国产中文在线观看|久久国产精品福利二区三区|yy8090新视觉午夜毛片 | 夫妻性生活黄色一级片|奇米精品一区二区三区四区|一级毛片啪啪|一区二区三区中文在线|国产精选大秀一区二区|高潮影院 | #NAME?|99爱精品视频|久久久精品一区二区|国产大片一区二区三区|亚洲国产精品综合久久20|免费观看视频的网站 天天超逼|综合一区二区三区|鲍鱼=av在线|农村黄色片|国产96精品|亚洲热线99精品视频 | 国产欧美一区二区三区在线|朋友的丰满人妻中文字幕|中文字幕乱伦视频|日韩黄色三级|台湾综合色|伊人影院久久 国产麻豆另类=aV|极品久久久久|桃花色综合影院|国产夜恋视频在线观看|美女=av免费在线观看|久久久国产一区二区三区四区 | 一个人看www在线高清免费看|国产超碰人人|中文字幕在线观看精品|公喝错春药让我高潮|亚洲=a一区二区|幼射HD交中国妇 | CHINESE新版少妇嫖妓VIDEOS|老外黄色一级片|天天午夜|欧美不卡影院|精品国产V无码大片在线看|国产免费网址 | 又大又紧又粉嫩18p少妇|国内精品自线一区麻豆|欧美h版在线观看|狠狠艹夜夜干|黄色影院在线播放|日日拍拍 | 国产极品美女高潮无套软件|亚洲精品视频区|免费精品一区二区三区在线观看|国产SM调教折磨视频|娇妻在厨房被朋友玩得呻吟|伊人成色综合人夜夜久久 | 中文字幕在线视频2019|欧美第一页草草影院|天天操天天射日本人|国产高清在线露脸一区|自拍性旺盛老熟女|九九视频大全 | 黄色福利网站在线观看|亚洲深夜福利|免费的爱爱视频|成人国产免费观看|精品欧美一区二区久久|一区美女 | CHINESE熟女熟妇1乱|亚洲一区二区三区乱码=aⅴ蜜桃女|最新国产福利一区二区免费视频|爱豆传媒国产剧情|国産精品久久久久久久|超碰超碰在线 | 日韩二区精品|亚洲操p|c=aoporn97免费公开视频|国产精品情侣高潮呻吟|免费国产内射|中文字字幕中文在线无码乱码 | 午夜无码伦费影视在线观看|在线看成人片|免费在线观看黄色=av|#NAME?|日韩=a∨精品日韩在线观看|精品人妻无码一区二区色欲产成人 |