Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
Promise.all()等所有的Promise执行完毕后,按照放在all中的先后顺序将resolve()返回的数据放在Promise.all的resolve中
示例:
//方法
promiseone(){
return new Promise((r,j)=>{
setTimeout( ()=>{
console.log(111);
r(11)
},3000)
})
},
promisetwo(){
return new Promise((r,j)=>{
setTimeout(()=>{
console.log(22);
r(22)
},1000)
})
},
promisethress(){
setTimeout(()=>{
console.log(33);
},500)
},
//vue中调用
//等promiseone和promisetwo请求回来后,再去请求promisethress。
//all()中的Promise对象执行先后顺序由自己快慢控制
created() {
Promise.all([this.promiseone(),this.promisetwo()]).then(res=>{
console.log(res,888);
this.promisethress()
})
},
打印的结果
image.png
注:Promise.all()方法接受一个数组作为参数,参数都是Promise实例
可适用场景:异步请求3需要等异步请求1和2的数据作为参数去请求。
网友评论