Promise.all 的用法
时间: 2023-05-29 17:02:35 浏览: 104
Promise.all 是一个将多个 Promise 实例包装成一个新的 Promise 实例的方法,它接收一个数组作为参数,数组中每一个元素都是一个 Promise 实例。
Promise.all 方法会返回一个新的 Promise 实例,当数组中所有的 Promise 实例都成功时,这个新的 Promise 实例才会成功,返回值是一个包含所有 Promise 实例返回值的数组。如果数组中任何一个 Promise 实例失败,这个新的 Promise 实例就会失败,并返回失败的 Promise 实例的错误原因。
Promise.all 的常见用法是在需要等待多个请求返回结果后再进行下一步操作时使用,例如:
```js
const promise1 = fetch('/api/data1')
const promise2 = fetch('/api/data2')
const promise3 = fetch('/api/data3')
Promise.all([promise1, promise2, promise3])
.then(response => {
// 当三个请求都成功时,执行这里的代码
console.log(response[0].json())
console.log(response[1].json())
console.log(response[2].json())
})
.catch(error => {
// 只要有一个请求失败,执行这里的代码
console.log(error)
})
```
在上面的例子中,使用 Promise.all 包装了三个异步请求,当三个请求都成功时,会把三个结果放在一个数组中返回,然后可以对这个数组进行处理。如果任何一个请求失败,则会进入 catch 分支。