日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

定时器和promise_Promise面试题,控制异步流程

發(fā)布時間:2025/3/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定时器和promise_Promise面试题,控制异步流程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題圖 By Clm From Bing

有這樣一道關(guān)于promise的面試題,描述如下:

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

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

用戶點擊了一次A,然后點擊一次B,又點擊一次A,輸入框顯示結(jié)果的順序為先顯示A異步請求結(jié)果,再次顯示B的請求結(jié)果,最后再次顯示A的請求結(jié)果。

UI界面如圖:

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

? ? ? ?//dom元素
? ? ? ?var a = document.querySelector("#a")
? ? ? ?var b = document.querySelector("#b")
? ? ? ?var i = document.querySelector("#ipt");
? ? ? ?//全局變量p保存promie實例
? ? ? ?var P = Promise.resolve();
? ? ? ?a.onclick ?= function(){
? ? ? ? ? ?//將事件過程包裝成一個promise并通過then鏈連接到
? ? ? ? ? ?//全局的Promise實例上,并更新全局變量,這樣其他點擊
? ? ? ? ? ?//就可以拿到最新的Promies執(zhí)行鏈
? ? ? ? ? ?P = P.then(function(){
? ? ? ? ? ? ? ?//then鏈里面的函數(shù)返回一個新的promise實例
? ? ? ? ? ? ? ?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的實例。

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

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

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

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

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

大家有其他方法或者問題可以留言,或者直接發(fā)送消息。

歡迎關(guān)注、轉(zhuǎn)發(fā)、點擊好看

總結(jié)

以上是生活随笔為你收集整理的定时器和promise_Promise面试题,控制异步流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费黄色av电影 | 女人叫床高潮娇喘声录音mp3 | 日韩欧美在线免费观看 | 东北熟女一区二区三区 | 成年人网站在线观看视频 | 欧美一区二区三区四区视频 | 中国老太婆性视频 | 国产黄频在线观看 | 亚洲一区二区三区av无码 | 黄色片免费在线播放 | 不卡在线视频 | 国产自产 | 天天草天天爽 | 欧美日韩在线观看一区 | 国产高清在线视频观看 | 欧美成人精品一区二区男人小说 | 欧美精品一区二区性色a+v | 国产一区二区三区自拍 | 美女精品一区二区 | 亚洲综合一区二区 | 亚洲精品黄色 | 老司机在线看片 | 国产粉嫩在线观看 | 性av免费 | 日韩三级小视频 | 女同动漫免费观看高清完整版在线观看 | 粉嫩av一区二区三区免费观看 | 黄视频网站在线 | 欧美一级少妇 | 亚洲欧洲一区二区三区 | 尤物videos另类xxxx| 欧美日韩在线视频一区二区 | 99热在线只有精品 | av一级二级 | 特黄aaaaaaa片免费视频 | 欧美一级片观看 | 亚洲理论中文字幕 | 成人精品免费看 | 男受被做哭激烈娇喘gv视频 | 美女裸片 | 国产性爱精品视频 | 丝袜中文字幕 | 日美韩一区二区三区 | 成年人在线视频网站 | 精品国产无码在线 | 欧美碰碰碰 | 一区二区片 | 九九在线观看免费高清版 | 91免费黄色 | 亚洲特级毛片 | 午夜久久久久久久久久 | 国产亚洲二区 | 天堂在线日本 | 在线观看你懂的视频 | 欧美日韩国产一区 | 日韩色网 | 精品欧美国产 | 免费a在线 | 白嫩初高中害羞小美女 | 蜜臀99久久精品久久久久久软件 | 久久精品99国产精品日本 | 亚洲一级精品 | 18av在线播放 | 黄色录象片| 有声小说 成人专区 | 国产八区 | 浪潮av色 | 午夜日韩 | 乱一色一乱一性一视频 | 少妇高潮一区二区三区在线 | 精品无码一区二区三区爱欲 | 日韩精品视频一区二区三区 | 亚洲成人av综合 | 国产中文一区 | 久久九九热视频 | xxxxx亚洲 | 欧洲av无码放荡人妇网站 | 先锋资源在线视频 | 美女午夜影院 | www.youjizz.com日本 | 天天爱天天爽 | 日韩欧美在线视频免费观看 | 疯狂做爰的爽文多肉小说王爷 | 婷婷天堂| 玖玖爱这里只有精品 | 免费在线观看黄色网址 | 日日干夜 | 亚洲专区在线播放 | 二区三区在线视频 | 国产精品入口麻豆九色 | 在线观看一区视频 | 看毛片网站| 欧洲免费av | 久久免费精品 | 与子敌伦刺激对白播放的优点 | 在线日韩中文字幕 | 国产精品久久久久久久久借妻 | 日韩精品一区二区在线播放 | 欧美另类69 |