Я получаю наблюдаемый поток из API для своего приложения angular и хочу обработать ошибку с помощью 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();
}
)
Я искал, как обрабатывать ошибку, в официальной документации rx js forkjoin , и они не упоминают, как обрабатывать ошибку, когда у вас есть массив 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();
}
)
);
})
Но я получил эту ошибку:
Вы указали undefined там, где ожидался поток. Вы можете предоставить Observable, Promise, Array или Iterable.
Итак, мне интересно, как правильно реализовать обработчик ошибок с помощью forkJoin? И как исправить эту ошибку? Спасибо большое