promist.all()

Promise其他常用函数,Promise.all()
批量执行
Promise.all([p1,p2,p3,...])用于将多个Promise实例,包装成有一个新的Promise实例。
返回的实例就是普通的Promise
接受一个数组作为参数。
数组里可以是Promise对象,也可以是别的值,只有Promise会等待状态改变。
当所有子Promise都完成,该Promise完成,返回值是全部值得数组。
有任何一个失败,该Promise失败,返回值是第一个失败的子Promise的结果。
promise常用函数
promise.all()


promiseAll
error
first reject error
all resolve values
Promise.all()并发请求
Promise.all()
Promise.all()



code:




运行结果:

console.log('go')
Promise.all([1,2,3])
.then(all => {
console.log('1: ', all)//注意正确写法,console一个字符串一个数组,而不需要+号将二者连城字符串
return Promise.all([()=>{
console.log('oooo')//这里,因为三个参数都是非promise且非thenable的。all会默认执行promise.resolve将其转为promise状态,且resolved状态。而这个函数也只是数组第零项,如果不调用,里边的console也不会执行
}, '0000', false]);
})
.then(all =>{
console.log('2: ', all)
// 这里原先写错为console.log('2: '+all),
// 最后输出的是
/* 2: ()=>{
console.log('oooo')//这里,默认执行promise.resolve时,console是否执行?
},0000,false */
// 这么一个字符串了
let p1 = new Promise(resolve=>{
setTimeout(()=>{
resolve('i,am p1');
},1000)
})
let p2 = new Promise(resolve=>{
setTimeout(()=>{
resolve('i,m p2')
}, 2000)
})
let p3 = new Promise((resolve,reject)=>{
setTimeout(()=>{
reject('i,m p3')
}, 3000)
})
return Promise.all([p1,p2,p3]);
})
.then(all=>{
console.log('end all:' + all)
})
.catch(err=>{console.log('Error: '+err)})
// 自测答案
// 立即执行
// go
// 1: [1,2,3]
// * return [()=>{console.log('oooo')}, '0000', false]
// 2: [()=>{console.log('oooo')}, '0000', false]
// 3秒后
// * return reject 'i,m p3'//(因为p1,p2,p3三个promise实例,在all中,因为p3是reject状态,all遇到后立马返回该reject状态和值)
// console err i,m p3
一、promise.all():批量执行
1、Promise.all([p1, p2, p3, …])用于将多个promise实例,包装成一个新的promise实例。
2、返回的实例就是普通promise
3、它接收一个数组作为参数。
4、数组里可以是promise对象,也可以是别的值,只有promise对象会等待状态改变。
5、当所有子promise都完成,该promise完成,返回值是全部值的数组。
6、有任何一个失败,该promise失败,返回值是第一个失败的子promise的结果
Promise.all()
promise.all()
一、promise.all():批量执行
1、Promise.all([p1, p2, p3, …])用于将多个promise实例,包装成一个新的promise实例。
2、返回的实例就是普通promise
3、它接收一个数组作为参数。
4、数组里可以是promise对象,也可以是别的值,只有promise对象会等待状态改变。
5、当所有子promise都完成,该promise完成,返回值是全部值的数组。
6、有任何一个失败,该promise失败,返回值是第一个失败的子promise的结果。