CodeForge

Angular 21 de Cero a Experto / RxJS y observables a gran escala

Reto: un buscador reactivo desde cero

Reto40 min100 XP

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

Difícil40 min100 XP(×2 sin mirar la solución)

Qué debes construir

Un Buscador que reciba términos (como el valueChanges de un input) y, por cada término:

  1. Debounce: espere a que el usuario deje de teclear (~300ms) antes de buscar.
  2. Ignore lo trivial: términos de menos de 2 caracteres y repeticiones del anterior.
  3. switchMap (cancelación): al llegar un término nuevo, CANCELE la búsqueda anterior en curso —solo importa el resultado del último término—.
  4. 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.