<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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript中Promise.all和Promise.race方法的介紹(附代碼)

        來源:懂視網 責編:小采 時間:2020-11-27 19:27:13
        文檔

        JavaScript中Promise.all和Promise.race方法的介紹(附代碼)

        JavaScript中Promise.all和Promise.race方法的介紹(附代碼):本篇文章給大家帶來的內容是關于JavaScript中Promise.all和Promise.race方法的介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。Promise.all() 方法接受一個包含 Promise 對象或普通值的數組(或其它可迭代對象)作為參數
        推薦度:
        導讀JavaScript中Promise.all和Promise.race方法的介紹(附代碼):本篇文章給大家帶來的內容是關于JavaScript中Promise.all和Promise.race方法的介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。Promise.all() 方法接受一個包含 Promise 對象或普通值的數組(或其它可迭代對象)作為參數

        本篇文章給大家帶來的內容是關于JavaScript中Promise.all和Promise.race方法的介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        Promise.all() 方法接受一個包含 Promise 對象或普通值的數組(或其它可迭代對象)作為參數,并返回一個 Promise。當所有 Promise 對象都 resolve 后,將所有 resolve 值以數組形式作為 Promise.all() resolve 的結果。如果其中之一的 Promise 被 reject,立即以第一個 reject 的值作為 Promise.all() reject 結果。

        在實際應用中,如果需要從幾個接口獲取數據,并且要在所有數據到達后才執行某些操作,就可以使用Promise.all()。

        const p1 = new Promise(function (resolve) { setTimeout(resolve, 200, 1) })
        const p2 = Promise.resolve(2)
        const p3 = 3
        Promise.all([p1, p2, p3]).then(function (res) { console.log(res) }) // [1,2,3]

        以下是代碼實現,需要一個計數器,來確認所有 promise 對象都已經 resolved,之后返回結果。需要一個數組,按順序記錄返回結果。如果使用類似 for (var i = 0; i < iterable[i]; i++) 的方式遍歷,為避免閉包只能傳入變量引用的問題,需要嵌套一層自執行函數。這里使用 for ... in 循環,使函數可以支持除數組外的其它可迭代對象,如數據結構 Set。

        const all = function (iterable) {
         return new Promise(function (resolve, reject) {
         let count = 0, ans = new Array(count)
         for (const i in iterable) {
         const v = iterable[i]
         if (typeof v === 'object' && typeof v.then === 'function') {
         v.then(function (res) {
         ans[i] = res
         if (--count === 0) resolve(ans)
         }, reject)
         count++
         } else {
         ans[i] = v
         }
         }
         })
        }
        
        const p1 = new Promise(function (resolve) { setTimeout(resolve, 200, 1) })
        const p2 = Promise.resolve(2)
        const p3 = 3
        all([p1, p2, p3]).then(function (res) { console.log(res) }) // [1,2,3]

        同 Promise.all(),Promise.race() 方法接受一個包含 Promise 對象或普通值的數組(或其它可迭代對象)作為參數,并返回一個 Promise。一旦其中之一的 Promise 對象 resolve 以后,立即把 resolve 的值作為 Promise.race() resolve 的結果。如果其中之一的對象 reject,Promise.race也會立即 reject。

        在實際應用中,如果可以從幾個接口獲取相同的數據,哪個接口數據先到就先用哪個,就可以使用Promise.race(),所需時間等于其中最快的那個接口。下面是代碼:

        const race = function (iterable) {
         return new Promise(function (resolve, reject) {
         for (const i in iterable) {
         const v = iterable[i]
         if (typeof v === 'object' && typeof v.then === 'function') {
         v.then(resolve, reject)
         } else {
         resolve(v)
         }
         }
         })
        }
        const p1 = new Promise(function (resolve) { setTimeout(resolve, 200, 1) })
        const p2 = new Promise(function (resolve) { setTimeout(resolve, 100, 2) })
        race([p1, p2]).then(function (res) { console.log(res) }) // 2

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

        文檔

        JavaScript中Promise.all和Promise.race方法的介紹(附代碼)

        JavaScript中Promise.all和Promise.race方法的介紹(附代碼):本篇文章給大家帶來的內容是關于JavaScript中Promise.all和Promise.race方法的介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。Promise.all() 方法接受一個包含 Promise 對象或普通值的數組(或其它可迭代對象)作為參數
        推薦度:
        標簽: 方法 介紹 all
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久久女教师免费一区| 日本亚洲欧美色视频在线播放| 九九视频高清视频免费观看 | 免费人人潮人人爽一区二区| 免费网站看v片在线香蕉| 7777久久亚洲中文字幕蜜桃| 亚洲午夜免费视频| 亚洲avav天堂av在线不卡| 韩日电影在线播放免费版| 久久九九亚洲精品| 久操视频免费观看| 亚洲自偷自拍另类图片二区| 2021久久精品免费观看| 亚洲a视频在线观看| 在线A级毛片无码免费真人| WWW亚洲色大成网络.COM| 亚洲国产成人乱码精品女人久久久不卡 | 久久久久久久99精品免费| 亚洲成色在线影院| www视频在线观看免费| 亚洲深深色噜噜狠狠网站| 免费观看四虎精品国产永久| eeuss免费天堂影院| 亚洲AV永久无码区成人网站| 精品免费人成视频app| 亚洲精品无码久久久久久| 亚洲伦乱亚洲h视频| 七色永久性tv网站免费看| 91亚洲性爱在线视频| 国产乱色精品成人免费视频| 久久精品无码免费不卡| 亚洲国产日韩一区高清在线| 国产va精品免费观看| 一级一看免费完整版毛片| 色播亚洲视频在线观看| 日本免费人成视频播放| 久久久久久久国产免费看| 亚洲欧洲春色校园另类小说| 又黄又大又爽免费视频| 99热在线免费观看| 日韩国产欧美亚洲v片|