gpt4 book ai didi

angular - 如何使用forkJoin处理Observable数组的错误?

转载 作者:行者123 更新时间:2023-12-03 08:19:13 24 4
gpt4 key购买 nike

我从我的 Angular 应用程序的API中获取了可观察到的流,并且我想使用forkjoin处理错误。

import { Observable } from 'rxjs';
import { forkJoin, of, throwError } from 'rxjs';

//An array of observable
let source$ = this.selectedItem.map(item => {
let payload = {foo: item.foo};
return this.apiService.updateBar(payload);
});

//Action when a response has been received for all observable
forkJoin(source$).subscribe(
() => {
this.action1();
this.action2();
this.action3();
}
)
我在 forkjoin的官方rxjs文档中搜索了如何处理错误,当您将一组Observable用作输入时,他们没有提及如何处理错误。
所以我试图直接处理可观察对象上的错误,这几乎可以正常工作:
  let source$ = this.selectedItem.map(item => {
let payload = {foo: item.foo};
return this.apiService.updateBar(payload).pipe(
catchError(
msg => {
this.errorAction1();
this.errorAction1();
this.errorAction1();
}
)
);
})
但是我得到了这个错误:

You provided 'undefined' where a stream was expected. You can providean Observable, Promise, Array, or Iterable.


因此,我想知道如何使用forkJoin正确实现错误处理?以及如何解决此错误?十分感谢

最佳答案

如果您只是想在任何一个失败时捕获错误,则在您的订阅中添加error回调。无需为每个Observable添加单独的错误处理程序。

forkJoin(source$).subscribe(
() => {
this.action1();
this.action2();
this.action3();
},
(error) => {
console.log(error);
}
)

关于angular - 如何使用forkJoin处理Observable数组的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61622139/

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