欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Promise控制異步流程怎么實(shí)現(xiàn)

本篇內(nèi)容介紹了“Promise控制異步流程怎么實(shí)現(xiàn)”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站專注于承德縣企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。承德縣網(wǎng)站建設(shè)公司,為承德縣等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計,專業(yè)設(shè)計,全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

題目:頁面上有一個輸入框,兩個按鈕,A按鈕和B按鈕,點(diǎn)擊A或者B分別會發(fā)送一個異步請求,請求完成后,結(jié)果會顯示在輸入框中。

題目要求,用戶隨機(jī)點(diǎn)擊A和B多次,要求輸入框顯示結(jié)果時,按照用戶點(diǎn)擊的順序顯示,舉例:

用戶點(diǎn)擊了一次A,然后點(diǎn)擊一次B,又點(diǎn)擊一次A,輸入框顯示結(jié)果的順序?yàn)橄蕊@示A異步請求結(jié)果,再次顯示B的請求結(jié)果,最后再次顯示A的請求結(jié)果。

UI界面如圖:

Promise控制異步流程怎么實(shí)現(xiàn)

這個需求該如何用promise來實(shí)現(xiàn)呢?代碼如下:

        //dom元素
       var a = document.querySelector("#a")
       var b = document.querySelector("#b")
       var i = document.querySelector("#ipt");
       //全局變量p保存promie實(shí)例
       var P = Promise.resolve();
       a.onclick  = function(){
           //將事件過程包裝成一個promise并通過then鏈連接到
           //全局的Promise實(shí)例上,并更新全局變量,這樣其他點(diǎn)擊
           //就可以拿到最新的Promies執(zhí)行鏈
           P = P.then(function(){
               //then鏈里面的函數(shù)返回一個新的promise實(shí)例
               return new Promise(function(resolve,reject){
                   setTimeout(function(){
                       resolve()
                       i.value = "a";
                   },1000)
               })
           })
       }
       b.onclick  = function(){
           P = P.then(function(){
               return new Promise(function(resolve,reject){
                   setTimeout(function(){
                       resolve()
                       console.log("b")
                       i.value = "b"
                   },2000)
               })
           })
       }

我們用定時器來模擬異步請求,仔細(xì)于閱讀代碼我們發(fā)現(xiàn),在全局我們定義了一個全局P,P保存了一個promise的實(shí)例。

然后再觀察點(diǎn)擊事件的代碼,用戶每次點(diǎn)擊按鈕時,我們在事件中訪問全局Promise實(shí)例,將異步操作包裝到成新的Promise實(shí)例,然后通過全局Promise實(shí)例的then方法來連接這些行為。

連接的時候需要注意,then鏈的函數(shù)中必須將新的promise實(shí)例進(jìn)行返回,不然就會執(zhí)行順序就不正確了。

需要注意的是,then鏈連接完成后,我們需要更新全局的P變量,只有這樣,其它點(diǎn)擊事件才能得到最新的Promise的執(zhí)行鏈。

這樣每次用戶點(diǎn)擊按鈕就不需要關(guān)心回調(diào)執(zhí)行時機(jī)了,因?yàn)閜romise的then鏈會按照其連接順序依次執(zhí)行。

這樣就能保證用戶的點(diǎn)擊順序和promise的執(zhí)行順序一致了。

“Promise控制異步流程怎么實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁標(biāo)題:Promise控制異步流程怎么實(shí)現(xiàn)
當(dāng)前鏈接:http://chinadenli.net/article14/jsepde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、全網(wǎng)營銷推廣、響應(yīng)式網(wǎng)站、品牌網(wǎng)站制作、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
激情视频在线视频在线视频| 国产美女精品人人做人人爽| 亚洲午夜精品视频观看| 一区二区三区欧美高清| 欧美久久一区二区精品| 情一色一区二区三区四| 亚洲国产av精品一区二区| 午夜成年人黄片免费观看| 亚洲一区二区三区三区| 激情视频在线视频在线视频| 亚洲国产丝袜一区二区三区四| 亚洲妇女黄色三级视频| 亚洲精品国产美女久久久99| 在线懂色一区二区三区精品| 91免费精品国自产拍偷拍| 少妇熟女亚洲色图av天堂| 精品女同在线一区二区| 一区二区三区日韩中文| 精品欧美日韩一二三区 | 国产午夜精品久久福利| 日韩在线视频精品视频| 一区二区福利在线视频| 国产精品久久香蕉国产线| 午夜精品久久久免费视频| 久久久精品区二区三区| 国产级别精品一区二区视频| 最近日韩在线免费黄片| 欧美在线视频一区观看| 69老司机精品视频在线观看| 欧美日韩精品综合一区| 久久本道综合色狠狠五月| 富婆又大又白又丰满又紧又硬| 99精品国产一区二区青青| 成人精品视频在线观看不卡| 日韩av欧美中文字幕| 欧美一区二区三区喷汁尤物| 成人精品欧美一级乱黄| 久久香蕉综合网精品视频| 欧美整片精品日韩综合| 亚洲av又爽又色又色| 午夜福利国产精品不卡|