angular - 如何从一系列可观察量中捕获所有不同的响应?

标签 angular rxjs observable

在 Angular 中,我有一系列可观察值。我想执行所有这些可观察的结果,但也处理所有不同的结果。当我尝试使用 forkJoincombineLatest 实现此功能时,我在测试场景中仅得到一个(错误)响应,其中我有 4 个可观察对象,但全部失败。

示例:

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

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

如何捕获所有不同的响应?

最佳答案

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

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 Example2

关于angular - 如何从一系列可观察量中捕获所有不同的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58953400/

相关文章:

Angular HTTP 拦截器订阅 observable 然后返回 next.handle 但抛出 TypeError : You provided 'undefined'

angular - 如何在 Angular 9 中动态导入语言环境?

typescript - 根据方法可用性创建 RxJs observable

rxjs - 如何知道 Rx.Observable.combineLatest 中哪个可观察触发变化

angular 2 - 路由守卫返回 observable<boolean>,理解

angular - 如何为通用组件提供更具体的组件以在 Angular 7 中进行渲染

rxjs - 在RxJS 5.0中找不到 `combineLatest`

javascript - RXJS redux observable 执行多个 api 调用

mvvm - SwiftUI 使用高频数据更新 UI

javascript - 集合教程中的 ko.observable 变量