Zaawansowane wzorce RxJS
Higher-order observable, multicasting, operatory share, odzyskiwanie po błędach, strategie retry, backpressure, własne operatory
1Jaka jest główna różnica między switchMap a mergeMap przy obsłudze równoczesnych żądań HTTP?
Jaka jest główna różnica między switchMap a mergeMap przy obsłudze równoczesnych żądań HTTP?
Odpowiedź
switchMap anuluje poprzednie żądania, gdy nadchodzi nowa wartość, podczas gdy mergeMap utrzymuje wszystkie aktywne subskrypcje jednocześnie. W pasku wyszukiwania switchMap automatycznie anuluje trwające żądania przy nowym wprowadzeniu, zapobiegając przestarzałym wynikom. mergeMap nadaje się do niezależnych akcji, które wszystkie muszą się zakończyć, jak równoległe wgrywanie plików.
2Kiedy należy użyć concatMap zamiast mergeMap do przetwarzania kolejki akcji użytkownika?
Kiedy należy użyć concatMap zamiast mergeMap do przetwarzania kolejki akcji użytkownika?
Odpowiedź
concatMap gwarantuje kolejność wykonania, czekając na zakończenie każdego wewnętrznego observable przed przetworzeniem następnego, podczas gdy mergeMap przetwarza wszystkie akcje równolegle bez gwarancji kolejności. Użyj concatMap dla krytycznych operacji wymagających ścisłej kolejności, jak sekwencyjne transakcje bankowe lub wysyłanie wiadomości czatu. mergeMap nadaje się do niezależnych akcji mogących działać równolegle.
3Czym jest higher-order observable i dlaczego wymaga operatora flattening?
Czym jest higher-order observable i dlaczego wymaga operatora flattening?
Odpowiedź
Higher-order observable to observable, który emituje inne observable. Na przykład observable kliknięć emitujący observable żądania HTTP dla każdego kliknięcia. Bez operatora flattening (switchMap, mergeMap, concatMap) otrzymujesz zagnieżdżoną strukturę Observable<Observable<T>>, której nie można użyć bezpośrednio. Operatory flattening automatycznie subskrybują wewnętrzne observable i emitują ich wartości w głównym strumieniu.
Którego operatora należy użyć, aby automatycznie anulować trwające wyszukiwanie, gdy użytkownik wpisuje nowy tekst?
Czym różni się exhaustMap od switchMap w obsłudze krytycznych żądań?
+19 pytań z rozmów
Inne tematy rekrutacyjne Angular
Podstawy TypeScript
TypeScript zaawansowany
Podstawy Angulara
Komponenty i cykl życia
Services & Dependency Injection
Organizacja modułów Angular
Angular CLI
Dyrektywy i Pipe'y
Routing i Nawigacja
Formularze reaktywne
Formularze template-driven
Podstawy RxJS
Operatory RxJS
HttpClient i wywołania API
Podstawowe zarządzanie stanem
Change Detection
Angular Signals
Standalone Components
Testy jednostkowe w Angular
Testowanie End-to-End
Build i optymalizacja
Podstawy NgRx
Zaawansowany NgRx
Architektura Angular
Optymalizacja wydajności
Bezpieczeństwo i najlepsze praktyki
Angular Universal i SSR
Angular Micro-frontends
Opanuj Angular na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo