1.Promise-all
Promise.all方法 多任务处理
Promise.all(iterable) iterable:包含多个 Promise 的迭代器对象,比如数组 当迭代器对象中的所有 Promise 状态都会 fulfilled/resolved 的时候,整体才是 fulfilled/resolved,否则就是 rejected
<script type="text/javascript">
let p1 = new Promise( (resolve, reject) => {
setTimeout(() => {
console.log(1)
resolve(10);
}, 2000);
} );
let p2 = new Promise( (resolve, reject) => {
setTimeout(() => {
console.log(2)
resolve(20);
}, 3000);
} )
Promise.all([p1, p2]).then( arr => {
console.log(3, arr);
} )
</script>
打印结果为
2.Promise-race
Promise.race方法 多任务处理
Promise.race(iterable) iterable:包含多个 Promise 的迭代器对象,比如数组 当迭代器对象中的首个任务完成(可以是fulfilled/resolved,也可能是 rejected)就会调用,并且状态取决于首个任务完成的状态
<script type="text/javascript">
let p1 = new Promise( (resolve, reject) => {
setTimeout(() => {
console.log(1)
resolve(10);
}, 2000);
} );
let p2 = new Promise( (resolve, reject) => {
setTimeout(() => {
console.log(2)
resolve(20);
}, 1000);
} )
Promise.race([p1, p2]).then( arr => {
console.log(3, arr);
} )
</script>