当前位置: 首页 > 知识库问答 >
问题:

如何从一系列可观察到的数据中捕捉所有不同的响应?

舒飞捷
2023-03-14

在Angular中,我有一组可观察到的东西。我想要执行所有这些可观察的结果,但也要处理所有不同的结果。当我尝试使用forkjoincombineLatest实现这一点时,我在测试场景中只得到一个(错误)响应,其中我有4个可观察到的结果,但都失败了。

示例:

const callsToExecute = [];
vehicles.forEach(vehicle => {
    callsToExecute.push(this.createRequest(vehicle.id));
)};

forkJoin(callsToExecute).subscribe(result => {}, error => {/** single response error */});

我怎样才能捕捉到所有不同的反应?

共有1个答案

温嘉赐
2023-03-14

您可以尝试以下方法捕获单个可观察到的错误:

const callsToExecute = [];
callsToExecute.push(of('Hello').pipe(map((res) => res), catchError(e => of('Oops! 1'))));
callsToExecute.push(of('Hello 2').pipe(map((res) => res), catchError(e => of('Oops! 2'))));
callsToExecute.push(of('Hello 3').pipe(map((res) => res), catchError(e => of('Oops! 3'))));
const example = forkJoin(
  callsToExecute
);
const subscribe = example.subscribe(val => console.log(val));

我创建了stackBlitz示例Example1示例2

 类似资料:
  • 我正在从事一个涉及Hystrix的项目,我决定使用RxJava。现在,忘记Hystrix的其余部分,因为我相信主要问题是我完全搞砸了正确编写可观察代码。 需要:我需要一种方法来返回一个代表多个可观察对象的可观察对象,每个可观察对象都运行一个用户任务。我希望该可观察对象能够返回任务的所有结果,甚至错误。 问题:可观测流会因错误而消亡。如果我有三个任务,而第二个任务引发了一个异常,那么即使第三个任务成

  • 问题内容: 给定汽车清单(),我可以这样做: 有没有办法我可以从一个到一个序列? 像没有参数的东西 问题答案: 您可以这样映射到: 请注意,flatMapping可能不会保留源可观察的顺序。如果订单对您很重要,请使用。

  • 问题内容: 据我所知,netty通过重写方法exceptionCaught()处理异常。但是我想要的是一个可以处理所有异常的处理程序。因此,管道应类似于: InboundExceptionHandler- inboundHandler1-inboundHandler2-outboundHandler1-outboundHandler2-OutboundExceptionHandler 这意味着我应

  • 我正在开发一个功能,我需要根据本地数据库数据过滤掉网络响应数据。 例如,我的网络层返回一个项目列表,我的数据库层返回一个可观察的ID列表。现在,我只想从网络层返回那些id与数据库层响应中的任何人都匹配的对象。 下面的代码从网络获取数据并将结果保存到数据库(缓存)。 我还有一个方法可以返回需要过滤的场馆列表 现在,我如何扩展前面的链,使用getDislikedVinces()observate从网络

  • 我如何在RxJava中创建一个从不同的地方完成的对象(未来),但我想要向某个客户端返回一个可观察的对象?

  • 我有多个热观测器,它们可能发射也可能不发射项目。因此,我想把可观察项组合起来,然后如果其中任何一个发出结果,就处理结果,但如果其他可观察项在item发出,就应该一起处理。 还有可能在之前发出 最接近我所需要的,但只有当所有可观察到的对象发出至少一个项时才会发出结果。这个有无反应操作符吗?