需求:计算两个异步方法,等所有请求都返回在计算他们
Promise.all 可以接收多个promise作为参数 当所有的promise都执行结束后会返回结果,使用场景封装请求的时候使用loding加载,当这个请求完毕,另一个请求的loding也结束会形成loding闪烁,
<script>
//下面一个例子 我需求要这两个异步方法的和,当所有的promise都执行结束后会返回结果
let promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(5)
}, 2000)
})
let promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(6)
}, 1000)
})
// 可以接收多个promise作为参数 当所有的promise都执行结束后会返回结果
Promise.all([promise1, promise2]).then((res) => {
let num = res[0] + res[1]
console.log(num);//11 promise.all函数会等所有的异步结束在执行
});
</script>
可以接收多个promise作为参数 当其中一个promise率先发生变化后就会执行的逻辑 race追赶的意思
<script>
let promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(5)
}, 2000)
})
let promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(6)
}, 1000)
})
// 可以接收多个promise作为参数 当其中一个promise率先发生变化后就会执行的逻辑 race追赶的意思
Promise.race([promise1, promise2]).then(res => {
console.log(res);//6 当其中一个promise率先发生变化后就会执行的逻辑,因为6是1秒比最上面快所以打印6
})
</script>
完 !