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