Promise.all() 一时失言乱红尘 2022-03-10 19:18 204阅读 0赞 批量执行 Promise.all(\[p1,p2,p3,...\])用于将多个Promise实例,包装成一个新的promise 实例。 返回的实例就是普通Promise 他接受一个数组作为参数 数组里可以是Promise对象,也可以是别的值,只有Promise会等待状态改变。 当所有的子Promise都完成,该Promise完成,返回值是全部值德 数组 有任何一个失败,该promise失败,返回值是第一个失败的子promise的结果 console.log('here we go'); Promise.all([1,2,3]) .then(all=>{ console.log('1:',all); return Promise.all([function(){ console.log('ooxx'); },'xxoo',false]) }) .then(all=>{ console.log('2:',all) let p1=new Promise(resolve=>{ setTimeout(()=>{ resolve('I\'m P1'); },1500) }); let p2=new Promise(resolve=>{ setTimeout(()=>{ resolve('I\'m P2'); },1450) }) return Promise.all([p1,p2]); }) .then(all=>{ console.log('3:',all) let P1=new Promise(resolve=>{ setTimeout(()=>{ resolve('I\'m P1'); },1500) }); let P2=new Promise((resolve,reject)=>{ setTimeout(()=>{ reject('I\'m P2'); },1000) }); let P3=new Promise((resolve,reject)=>{ setTimeout(()=>{ reject('I\'m P3'); },3000) }) return Promise.all([p1,p2,p3]); }) .then(all=>{ console.log('all',all); }) .catch(err=>{ console.log('Catch',err); }) here we go 1:\[1,2,3\] 2:\[\[Function\],'xxoo',false\] 3:\['I\\'m P1','I\\'m P2'\] Catch: I'm P2
还没有评论,来说两句吧...