promise.all请求接口有一个失败怎么办
时间: 2023-10-27 16:46:13 浏览: 99
当使用 `Promise.all` 来发送多个请求并且其中一个请求失败时,可以使用 `Promise.allSettled` 来处理。`Promise.allSettled` 返回一个新的 Promise 对象,该对象在所有给定的 Promise 都已经被解析或被拒绝后才会被解析。这样无论请求是否成功,都能得到每个请求的结果。
下面是一个示例代码:
```javascript
const promises = [
fetch('/api/endpoint1'),
fetch('/api/endpoint2'),
fetch('/api/endpoint3')
];
Promise.allSettled(promises)
.then(results => {
results.forEach(result => {
if (result.status === 'fulfilled') {
console.log('请求成功:', result.value);
} else if (result.status === 'rejected') {
console.log('请求失败:', result.reason);
}
});
});
```
在上述示例中,我们使用 `fetch` 函数发送了三个请求,并将它们放入一个数组 `promises` 中。然后,我们使用 `Promise.allSettled` 来处理这些请求。在 `then` 方法中,我们遍历了返回的结果数组 `results`,并根据每个请求的状态来进行相应的处理。
请注意,`Promise.allSettled` 是 ES2020 中引入的新方法,如果你的环境不支持该方法,可以使用第三方库或手动实现类似的功能。
阅读全文