vue中使用promise.all
时间: 2024-06-20 09:00:46 浏览: 109
前端Vue日常工作中-Promise
在 Vue 中,`Promise.all()` 是一个非常有用的工具,当你需要同时处理多个异步操作并且等待所有操作完成时,它可以帮到你。`Promise.all()` 接收一个 Promise 对象数组作为参数,返回一个新的 Promise,这个新 Promise 只有在所有传入的 Promise 都成功(状态变为 fulfilled)并返回结果后才会被解析(fulfilled),或者只要有一个 Promise 拒绝(rejected),那么整个 `Promise.all()` 就会被拒绝,并且返回的拒绝原因将是第一个拒绝的 Promise 的原因。
以下是一个简单的例子:
```javascript
// 假设我们有三个异步操作
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 1'), 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 2'), 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 3'), 3000);
});
// 使用 Promise.all()
Promise.all([promise1, promise2, promise3])
.then(results => {
console.log('All promises resolved:', results); // ["Promise 1", "Promise 2", "Promise 3"]
})
.catch(error => {
console.error('One or more promises rejected:', error);
});
```
在这个例子中,因为 `promise2` 的执行时间最长,所以整个 `Promise.all()` 会在 `promise2` 解决之后才解析,输出结果数组。
阅读全文