Patterns RxJS avancés
Higher-order observables, multicasting, share operators, error recovery, retry strategies, backpressure, custom operators
1Quelle est la différence principale entre switchMap et mergeMap dans le traitement de requêtes HTTP concurrentes ?
Quelle est la différence principale entre switchMap et mergeMap dans le traitement de requêtes HTTP concurrentes ?
Réponse
switchMap annule les requêtes précédentes lorsqu'une nouvelle valeur arrive, tandis que mergeMap maintient toutes les souscriptions actives simultanément. Dans une barre de recherche, switchMap annule automatiquement les requêtes en cours lors d'une nouvelle saisie, évitant les résultats obsolètes. mergeMap convient aux actions indépendantes qui doivent toutes se terminer, comme des uploads de fichiers en parallèle.
2Dans quel cas utiliser concatMap plutôt que mergeMap pour traiter une file d'actions utilisateur ?
Dans quel cas utiliser concatMap plutôt que mergeMap pour traiter une file d'actions utilisateur ?
Réponse
concatMap garantit l'ordre d'exécution en attendant la fin de chaque observable interne avant de traiter le suivant, tandis que mergeMap traite toutes les actions en parallèle sans garantie d'ordre. Utiliser concatMap pour des opérations critiques nécessitant un ordre strict, comme des transactions bancaires séquentielles ou l'envoi de messages dans un chat. mergeMap convient aux actions indépendantes pouvant s'exécuter en parallèle.
3Qu'est-ce qu'un higher-order observable et pourquoi nécessite-t-il un opérateur de flattening ?
Qu'est-ce qu'un higher-order observable et pourquoi nécessite-t-il un opérateur de flattening ?
Réponse
Un higher-order observable est un observable qui émet d'autres observables. Par exemple, un observable de clics qui émet un observable de requête HTTP pour chaque clic. Sans opérateur de flattening (switchMap, mergeMap, concatMap), on obtient une structure imbriquée Observable<Observable<T>> impossible à utiliser directement. Les opérateurs de flattening souscrivent automatiquement aux observables internes et émettent leurs valeurs dans le flux principal.
Quel opérateur utiliser pour annuler automatiquement une recherche en cours lors d'une nouvelle saisie utilisateur ?
Comment exhaustMap diffère-t-il de switchMap dans la gestion de requêtes critiques ?
+19 questions d'entretien
Autres sujets d'entretien Angular
Les bases de TypeScript
TypeScript avancé
Fondamentaux Angular
Composants et cycle de vie
Services et Dependency Injection
Organisation des Modules Angular
Angular CLI
Directives et Pipes
Routing et Navigation
Formulaires réactifs
Formulaires template-driven
Fondamentaux RxJS
Opérateurs RxJS
HttpClient et API calls
Gestion d'état de base
Change Detection
Angular Signals
Standalone Components
Tests unitaires Angular
Tests end-to-end
Build et optimisation
Fondamentaux NgRx
NgRx avancé
Architecture Angular
Optimisation de performance
Sécurité et bonnes pratiques
Angular Universal et SSR
Micro-frontends Angular
Maîtrise Angular pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement