gpt4 book ai didi

javascript - 有没有办法只获得已解决 promise 的值(value)?

转载 作者:行者123 更新时间:2023-12-05 03:26:51 26 4
gpt4 key购买 nike

我在我的 JavaScript 应用程序中调用多个服务,包括网络调用和其他异步服务。

起初我是一个一个地调用这些 promise 。从长远来看,它变得越来越难以维护,因为我正在调用更多服务。

我在互联网上的某个地方读到,我们可以使用 Promise.all() 将所有 promise 分组并一次执行所有内容。

问题是,如果任何一个 promise 被拒绝,所有其他 promise 也被拒绝,这不是我需要的。

我在状态仪表板中工作,我需要在其中对多个服务执行 ping 操作并显示该服务是否已启动。通过使用 Promise.all,它并没有按照我希望的方式工作。

尝试了另一种方法 Promise.any(),但它只在任何一个被解析时解析。

看了一下 MDN 文档,其中有很多功能让我感到不知所措,因为我是 JavaScript 的初学者。

目前我已经创建了一个自己的服务,它负责调用所有的 promise 并计算响应。有更清洁的方法吗?

最佳答案

使用Promise.allSettled,然后过滤掉那些没有实现的。

Promise.allSettled([
Promise.resolve(3),
Promise.reject(4),
Promise.resolve(5),
])
.then((results) => {
const allFulfilledValues = results
.filter(r => r.status === 'fulfilled')
.map(r => r.value);
console.log(allFulfilledValues);
});

关于javascript - 有没有办法只获得已解决 promise 的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71625149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com