promise 的用法及all race 方法的说明
Posted sq652366
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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) })
输出结果为("第二个异步执行成功")
以上是关于promise 的用法及all race 方法的说明的主要内容,如果未能解决你的问题,请参考以下文章
理解Promise.all,Promise.all与Promise.race的区别,如何让Promise.all在rejected后依然返回resolved状态
Promise静态方法实现(all race finally resolve reject)
Promise.all和Promise.race的区别和使用