Promise.all 静态方法

Promise.all 静态方法

概念:合并多个 Promise 对象,等待所有同时成功完成(或某一个失败),做后续逻辑

语法

const p = Promise.a11([Promise对象,Promise对象,...])
p.then(result => {
// result结果: [Promise对象成功结果,Promise对象成功结果,...]
]).catch(error =>
// 第一个失败的Promise对象,跑出的异常
})

案例

// 1.请求城市的天气
const bjPromise = axios({ url: 'http://hmajax.xxxx.net/api/weather', params: { city: '110100' } })
const shPromise = axios({ url: 'http://hmajax.xxxx.net/api/weather', params: { city: '310100' } })
const gzPromise = axios({ url: 'http://hmajax.xxxx.net/api/weather', params: { city: '440100' } })
const szPromise = axios({ url: 'http://hmajax.xxxx.net/api/weather', params: { city: '440300' } })

// 2.使用Promise.all,合并多个Promise对象
const p = Promise.all([bjPromise,shPromise,gzPromise,szPromise]).then(res=>{
    // 注意:结果数组返回的顺序和上面合并数组的顺序是一致的
    console.log(res)
}).catch(err=>{
    console.log(err)
})
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Promise.all方法是JavaScript中的一个静态方法,它接收一个Promise对象数组作为参数,并返回一个新的Promise对象。返回的Promise对象在所有输入的Promise对象都成功解决时才会解决,否则只要有一个Promise对象被拒绝,返回的Promise对象就会被拒绝。 使用Promise.all方法,可以并发地处理多个异步操作,并等待它们全部完成,然后进行下一步的处理。当所有的Promise对象都解决时,Promise.all会返回一个包含全部解决值的数组,这个数组的顺序与传入的Promise对象数组的顺序一致。 下面是一个使用Promise.all方法的示例: ```javascript const promise1 = new Promise((resolve, reject) => { setTimeout(() => { resolve('Promise 1 resolved'); }, 2000); }); const promise2 = new Promise((resolve, reject) => { setTimeout(() => { resolve('Promise 2 resolved'); }, 1000); }); const promise3 = new Promise((resolve, reject) => { setTimeout(() => { resolve('Promise 3 resolved'); }, 3000); }); Promise.all([promise1, promise2, promise3]) .then((results) => { console.log(results); // ['Promise 1 resolved', 'Promise 2 resolved', 'Promise 3 resolved'] }) .catch((error) => { console.error(error); }); ``` 在上述示例中,我们创建了三个异步操作的Promise对象,并传入了一个包含这三个Promise对象的数组给Promise.all方法。当所有的Promise对象都解决时,then回调函数会被执行,打印出包含所有解决值的数组。如果任何一个Promise对象被拒绝,catch回调函数会被执行,打印出错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值