<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JS中async/await實現異步調用的方法

        來源:懂視網 責編:小采 時間:2020-11-27 21:51:37
        文檔

        JS中async/await實現異步調用的方法

        JS中async/await實現異步調用的方法:async/await多個函數關聯調用 async/await使得異步代碼看起來像同步代碼 async函數會隱式地返回一個promise,而promise的reosolve值就是函數return的值 Async/Await不需要寫.then,不需要寫匿名函數處理Promise的resolve值,也不需要定義多余
        推薦度:
        導讀JS中async/await實現異步調用的方法:async/await多個函數關聯調用 async/await使得異步代碼看起來像同步代碼 async函數會隱式地返回一個promise,而promise的reosolve值就是函數return的值 Async/Await不需要寫.then,不需要寫匿名函數處理Promise的resolve值,也不需要定義多余

        async/await多個函數關聯調用

        async/await使得異步代碼看起來像同步代碼

        async函數會隱式地返回一個promise,而promise的reosolve值就是函數return的值

        Async/Await不需要寫.then,不需要寫匿名函數處理Promise的resolve值,也不需要定義多余的data變量,還避免了嵌套代碼

        async聲明一個異步函數

        await只能在async函數中使用,后面跟一個promise對象

        所以在模擬異步調用函數時,函數體內返回promise

        async/await缺點

        async函數里,無論是Promise reject的數據還是邏輯報錯,都會被默默吞掉。所以最好把await放入try{}catch{}中,或者在async返回的promise對象中使用.cache捕獲錯誤。

        實現

        項目中實現三個不同的接口調用,三個接口是相互關聯的,前一個接口的返回值是后一個接口的參數,如果使用Promise實現的話,只能實現異步調用,但是無法相互關聯,也就是數據不互通,所以使用async/await實現

      1. 接口調用的方法獨立封裝,參數可動態設置
      2. async聲明異步方法,內部使用await關鍵字調用封裝的接口,參數可直接傳入
      3. async/await相當于將Promise異步調用同步化,數據可實現關聯
      4. async/await會默認返回一個Promise對象,在實際調用中使用cache捕獲錯誤
      5. 代碼實現

        <script>
         //再此使用定時器模擬異步接口的調用
         // 異步函數a
         function a() {
         return new Promise(resolve => {
         setTimeout(()=>{
         resolve('a')
         }, 1000)
         })
         }
         // 異步函數b,關聯a參數
         function b(a) {
         return new Promise(resolve => {
         setTimeout(()=>{
         resolve(a+'b')
         }, 1000)
         })
         }
         // 異步函數c,關聯b參數
         function c(b) {
         return new Promise(resolve => {
         setTimeout(()=>{
         resolve(b+'c')
         }, 1000)
         })
         }
        
         // 同步執行三個關聯的異步函數
         async function d(){
         const da = await a();
         const db = await b(da);
         const dc = await c(db);
         return dc;
         }
        
         // 實際調用
         d().then(res=>{
         console.log(res)
         }).catch(err=>{
         console.log(err)
         });
        </script>

        總結

        以上所述是小編給大家介紹的JS中async/await實現異步調用的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS中async/await實現異步調用的方法

        JS中async/await實現異步調用的方法:async/await多個函數關聯調用 async/await使得異步代碼看起來像同步代碼 async函數會隱式地返回一個promise,而promise的reosolve值就是函數return的值 Async/Await不需要寫.then,不需要寫匿名函數處理Promise的resolve值,也不需要定義多余
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 青青久久精品国产免费看| 久久免费精彩视频| 一级毛片免费视频网站| 可以免费观看的毛片| 白白国产永久免费视频| 亚洲av永久无码精品国产精品| 日韩免费精品视频| 免费乱理伦在线播放| 亚洲av午夜成人片精品网站 | 免费观看美女用震蛋喷水的视频| 少妇性饥渴无码A区免费| 成人免费乱码大片A毛片| 在线免费视频你懂的| 成年大片免费视频| 亚洲不卡中文字幕无码| 国产亚洲精品AAAA片APP| 无码国产精品一区二区免费3p| 在线美女免费观看网站h| 亚洲综合色区在线观看| 国产亚洲美女精品久久久久狼| 亚洲人成在线影院| 亚洲国产高清美女在线观看| 一进一出60分钟免费视频| 亚洲色欲一区二区三区在线观看| 久久青青草原亚洲AV无码麻豆 | 亚洲明星合成图综合区在线| 69式互添免费视频| 亚洲精品国产综合久久久久紧| 一区二区三区免费精品视频| 精品国产亚洲一区二区三区 | 极品美女一级毛片免费| 激情综合色五月丁香六月亚洲| 亚洲国产精品久久久久网站 | 四虎免费大片aⅴ入口| 亚洲毛片无码专区亚洲乱| 亚欧免费一级毛片| 国产成人麻豆亚洲综合无码精品| 亚洲乱码日产精品一二三| 亚洲最大无码中文字幕| 中文字幕av无码无卡免费| 亚洲人成无码www久久久|