Angular 21 de Cero a Experto / RxJS y observables a gran escala
Reto: un buscador reactivo desde cero
Este reto corona el módulo de RxJS: vas a construir un buscador reactivo COMPLETO desde cero
—con debounce, cancelación de peticiones obsoletas y manejo de errores—, implementando tú
mismo la mecánica de debounceTime y switchMap. Cuando funcione, entenderás por dentro el
patrón más importante de RxJS, el que hace usables las búsquedas en vivo y el autocompletado de
toda app profesional.
Reto
Debounce + switchMap + catchError, construidos a mano
Qué debes construir
Un Buscador que reciba términos (como el valueChanges de un input) y, por cada término:
- Debounce: espere a que el usuario deje de teclear (~300ms) antes de buscar.
- Ignore lo trivial: términos de menos de 2 caracteres y repeticiones del anterior.
- switchMap (cancelación): al llegar un término nuevo, CANCELE la búsqueda anterior en curso —solo importa el resultado del último término—.
- catchError: si una búsqueda falla, devuelva resultados vacíos sin romper el buscador (los siguientes términos deben seguir funcionando).
Simula la "API" con una función asíncrona que tarda un tiempo variable y a veces falla.
Reglas
- Implementa el debounce y la cancelación tú mismo (nada de importar RxJS).
- El buscador debe seguir vivo tras un error (no "morir" con el primer fallo).
- Demuestra la cancelación: una búsqueda lenta seguida de una rápida → solo se usa la última.
40:00
Cuando estés listo, arranca el reloj.
Qué sigue
Dominas RxJS de arriba a abajo, y lo conectaste con señales. Tienes todas las herramientas
reactivas de Angular. El próximo módulo las pone al servicio de los datos remotos: HttpClient
y el manejo de datos —peticiones, interceptores funcionales, caché, estados de carga y
httpResource—. Vas a conectar "Mi Bolsillo" con un backend de verdad.