Angular

Просунуті патерни RxJS

Higher-order observable, multicasting, оператори share, відновлення після помилок, стратегії retry, backpressure, власні оператори

22 питань зі співбесід·
Senior
1

У чому головна різниця між switchMap та mergeMap під час обробки одночасних HTTP-запитів?

Відповідь

switchMap скасовує попередні запити, коли надходить нове значення, тоді як mergeMap підтримує всі активні підписки одночасно. У рядку пошуку switchMap автоматично скасовує поточні запити при новому введенні, запобігаючи застарілим результатам. mergeMap підходить для незалежних дій, які всі повинні завершитися, як-от паралельне завантаження файлів.

2

Коли слід використовувати concatMap замість mergeMap для обробки черги дій користувача?

Відповідь

concatMap гарантує порядок виконання, чекаючи завершення кожного внутрішнього observable перед обробкою наступного, тоді як mergeMap обробляє всі дії паралельно без гарантії порядку. Використовуйте concatMap для критичних операцій, що вимагають суворого порядку, таких як послідовні банківські транзакції або відправка повідомлень у чаті. mergeMap підходить для незалежних дій, які можуть виконуватися паралельно.

3

Що таке higher-order observable і чому він потребує оператора flattening?

Відповідь

Higher-order observable - це observable, який випромінює інші observable. Наприклад, observable кліків, який випромінює observable HTTP-запиту для кожного кліку. Без оператора flattening (switchMap, mergeMap, concatMap) ви отримаєте вкладену структуру Observable<Observable<T>>, яку неможливо використовувати безпосередньо. Оператори flattening автоматично підписуються на внутрішні observable і випромінюють їхні значення в основному потоці.

4

Який оператор використовувати для автоматичного скасування поточного пошуку, коли користувач вводить новий текст?

5

Чим exhaustMap відрізняється від switchMap у обробці критичних запитів?

+19 питань зі співбесід

Інші теми співбесід Angular

Основи TypeScript

Junior
25 запитань

TypeScript просунутий

Junior
20 запитань

Основи Angular

Junior
20 запитань

Компоненти та життєвий цикл

Junior
20 запитань

Services & Dependency Injection

Junior
20 запитань

Організація модулів Angular

Mid-Level
22 запитань

Angular CLI

Junior
18 запитань

Директиви та Pipe

Mid-Level
22 запитань

Маршрутизація та навігація

Mid-Level
24 запитань

Реактивні форми

Mid-Level
26 запитань

Template-driven форми

Mid-Level
16 запитань

Основи RxJS

Mid-Level
22 запитань

Оператори RxJS

Mid-Level
24 запитань

HttpClient і виклики API

Mid-Level
22 запитань

Базове керування станом

Mid-Level
20 запитань

Change Detection

Mid-Level
20 запитань

Angular Signals

Mid-Level
20 запитань

Standalone Components

Mid-Level
18 запитань

Модульні тести в Angular

Mid-Level
22 запитань

End-to-End тестування

Mid-Level
18 запитань

Build і оптимізація

Mid-Level
20 запитань

Основи NgRx

Senior
24 запитань

Просунутий NgRx

Senior
24 запитань

Архітектура Angular

Senior
22 запитань

Оптимізація продуктивності

Senior
22 запитань

Безпека та найкращі практики

Senior
20 запитань

Angular Universal та SSR

Senior
20 запитань

Angular Micro-frontends

Senior
20 запитань

Опануй Angular для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно