Просунуті патерни RxJS
Higher-order observable, multicasting, оператори share, відновлення після помилок, стратегії retry, backpressure, власні оператори
1У чому головна різниця між switchMap та mergeMap під час обробки одночасних HTTP-запитів?
У чому головна різниця між switchMap та mergeMap під час обробки одночасних HTTP-запитів?
Відповідь
switchMap скасовує попередні запити, коли надходить нове значення, тоді як mergeMap підтримує всі активні підписки одночасно. У рядку пошуку switchMap автоматично скасовує поточні запити при новому введенні, запобігаючи застарілим результатам. mergeMap підходить для незалежних дій, які всі повинні завершитися, як-от паралельне завантаження файлів.
2Коли слід використовувати concatMap замість mergeMap для обробки черги дій користувача?
Коли слід використовувати concatMap замість mergeMap для обробки черги дій користувача?
Відповідь
concatMap гарантує порядок виконання, чекаючи завершення кожного внутрішнього observable перед обробкою наступного, тоді як mergeMap обробляє всі дії паралельно без гарантії порядку. Використовуйте concatMap для критичних операцій, що вимагають суворого порядку, таких як послідовні банківські транзакції або відправка повідомлень у чаті. mergeMap підходить для незалежних дій, які можуть виконуватися паралельно.
3Що таке higher-order observable і чому він потребує оператора flattening?
Що таке higher-order observable і чому він потребує оператора flattening?
Відповідь
Higher-order observable - це observable, який випромінює інші observable. Наприклад, observable кліків, який випромінює observable HTTP-запиту для кожного кліку. Без оператора flattening (switchMap, mergeMap, concatMap) ви отримаєте вкладену структуру Observable<Observable<T>>, яку неможливо використовувати безпосередньо. Оператори flattening автоматично підписуються на внутрішні observable і випромінюють їхні значення в основному потоці.
Який оператор використовувати для автоматичного скасування поточного пошуку, коли користувач вводить новий текст?
Чим exhaustMap відрізняється від switchMap у обробці критичних запитів?
+19 питань зі співбесід
Інші теми співбесід Angular
Основи TypeScript
TypeScript просунутий
Основи Angular
Компоненти та життєвий цикл
Services & Dependency Injection
Організація модулів Angular
Angular CLI
Директиви та Pipe
Маршрутизація та навігація
Реактивні форми
Template-driven форми
Основи RxJS
Оператори RxJS
HttpClient і виклики API
Базове керування станом
Change Detection
Angular Signals
Standalone Components
Модульні тести в Angular
End-to-End тестування
Build і оптимізація
Основи NgRx
Просунутий NgRx
Архітектура Angular
Оптимізація продуктивності
Безпека та найкращі практики
Angular Universal та SSR
Angular Micro-frontends
Опануй Angular для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно