Angular · Middle · Pytanie 20 z 75
Dlaczego w długożyjącym strumieniu catchError należy umieścić wewnątrz switchMap?
this.query$.pipe(
switchMap((q) => this.api.search(q).pipe(catchError(() => of([])))),
);- ✓Poprawna odpowiedź: Błąd kończy strumień, do którego dotrze; przechwycenie go na wewnętrznym Observable utrzymuje zewnętrzny strumień wyszukiwania przy życiu
- 2
catchErrordziała tylko wewnątrzswitchMap - 3Dzięki temu żądanie automatycznie się ponawia
Wyjaśnienie
Jeśli błąd dotrze do zewnętrznego strumienia, ten się zakończy i pole wyszukiwania przestanie działać po pierwszej awarii. Obsługuj błędy dla każdego żądania i zwracaj wartość zastępczą.