RxJs forkJoin:当所有可观察对象都错误或成功时执行

问题描述 投票:0回答:1

想象一下我有以下代码,其中一个可观察到的抛出错误,而另一个在延迟后成功抛出:]

let observables: Observable<String>[] = [
  of("string 1").pipe(delay(1000)),
  throwError("error")
];

observables.forEach((observable, i) => {
  observable.subscribe(val => {
    console.log('success ' + i);
  }, error => {
    console.log('error ' + i);
  })
})

forkJoin(observables).subscribe(res => {
  console.log('final success');
}, error => {
  console.log('final error');
});

此代码将记录以下内容:

error 1
final error
success 0

为了执行某些代码我可以使用哪种运算符或回调之后

所有可观察对象都成功或出错了?目标是按照以下顺序登录:
error 1
success 0
final error

另一个可接受的结果是在某个地方捕获错误,然后记录:

error 1
success 0
final success

我进行了演示:https://stackblitz.com/edit/typescript-myfstw?file=index.ts

[想象一下,我有以下代码,其中一个可观察的抛出错误,而另一个在延迟后成功执行:让可观察的对象:Observable [] = [of(“ string 1”)。pipe(delay(1000)),.. 。

typescript rxjs rxjs6
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.