Patrones avanzados de RxJS
Higher-order observables, multicasting, operadores share, recuperación de errores, estrategias de retry, backpressure, operadores personalizados
1¿Cuál es la principal diferencia entre switchMap y mergeMap al manejar peticiones HTTP concurrentes?
¿Cuál es la principal diferencia entre switchMap y mergeMap al manejar peticiones HTTP concurrentes?
Respuesta
switchMap cancela las peticiones anteriores cuando llega un nuevo valor, mientras que mergeMap mantiene todas las suscripciones activas simultáneamente. En una barra de búsqueda, switchMap cancela automáticamente las peticiones en curso ante nueva entrada, evitando resultados obsoletos. mergeMap es adecuado para acciones independientes que deben completarse todas, como cargas de archivos en paralelo.
2¿Cuándo se debe usar concatMap en lugar de mergeMap para procesar una cola de acciones de usuario?
¿Cuándo se debe usar concatMap en lugar de mergeMap para procesar una cola de acciones de usuario?
Respuesta
concatMap garantiza el orden de ejecución esperando que cada observable interno se complete antes de procesar el siguiente, mientras que mergeMap procesa todas las acciones en paralelo sin garantía de orden. Use concatMap para operaciones críticas que requieren orden estricto, como transacciones bancarias secuenciales o envío de mensajes en chat. mergeMap es adecuado para acciones independientes que pueden ejecutarse en paralelo.
3¿Qué es un higher-order observable y por qué requiere un operador de flattening?
¿Qué es un higher-order observable y por qué requiere un operador de flattening?
Respuesta
Un higher-order observable es un observable que emite otros observables. Por ejemplo, un observable de clics que emite un observable de petición HTTP por cada clic. Sin un operador de flattening (switchMap, mergeMap, concatMap), se obtiene una estructura anidada Observable<Observable<T>> imposible de usar directamente. Los operadores de flattening se suscriben automáticamente a los observables internos y emiten sus valores en el flujo principal.
¿Qué operador usar para cancelar automáticamente una búsqueda en curso cuando el usuario escribe nueva entrada?
¿Cómo difiere exhaustMap de switchMap en el manejo de peticiones críticas?
+19 preguntas de entrevista
Otros temas de entrevista Angular
Conceptos básicos de TypeScript
TypeScript Avanzado
Fundamentos de Angular
Componentes y ciclo de vida
Services & Dependency Injection
Organización de Módulos Angular
Angular CLI
Directivas y Pipes
Routing y Navegación
Formularios reactivos
Formularios template-driven
Fundamentos de RxJS
Operadores RxJS
HttpClient y llamadas API
Gestión de estado básica
Change Detection
Angular Signals
Standalone Components
Pruebas unitarias en Angular
Testing End-to-End
Build y optimización
Fundamentos de NgRx
NgRx avanzado
Arquitectura Angular
Optimización de rendimiento
Seguridad y buenas prácticas
Angular Universal y SSR
Micro-frontends Angular
Domina Angular para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis