promise中的all方法和race方法


這兩個方法,都是並行執行多個異步操作。而不同的是,all方式遵循“誰跑得慢,以誰為准執行回調”,而race遵循的是“誰跑的快,以誰為准執行回調”

以下為兩個異步函數

function yibu1() {
            var p1 = new Promise((resolve, reject) => {
                setTimeout(() => {
                resolve('第一個異步執行成功')
            },3000)
            })
            return p1
        }

        function yibu2() {
            var p2 = new Promise((resolve, reject) => {
                setTimeout(() => {
                resolve('第二個異步執行成功')
            },2000)
            })
            return p2
        }

當使用all實現並行執行時,結果如下

Promise.all([yibu1(), yibu2()]).then(function (res) {
            console.log(res)
        }).catch(function (reason) {
            console.log(reason)
        })

返回的是每個異步函數執行回調后的結果組成的數組

 

當使用race實現並行執行時,結果如下

Promise.race([yibu1(), yibu2()]).then(function (res) {
            console.log(res)
        }).catch(function (reason) {
            console.log(reason)
        })

誰先執行結束,誰先進入回調


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM