Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

253
Vistas
¿Puedes atrapar el filtro rxjs como atrapar una izquierda?

Me gustaría saber si es posible detectar cuándo la condición del filtro rxjs no es cierta.

Esto es lo que tengo:

 of(1) .pipe( map((d) => d + 1), filter((d) => d === 0), map((d) => d + 1), // this will go in because of the filter ) .toPromise() .then((d) => console.log(d)) // display indefined .catch(() => console.log("ERRRRRROOOOOOR")) // do not display :(

En este caso, me gustaría devolver un dato específico (o al menos arrojarlo) cuando la condición del filtro no es verdadera.

Intenté agregar parámetros al filtro.

 filter(filter((d) => d === 0), "john doe")

Pero esto no muestra la cadena,

Supongo que el equivalente en fp-ts es atrapar la izquierda, pero no sé si puedes hacer programación funcional con rxjs o si solo puedes trabajar con observable. El hecho de que pueda usar tuberías y múltiples operadores permite el uso de esta biblioteca en mi proyecto, por lo que será bueno evitar cambiar la biblioteca.

Muchas gracias !

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¡Necesitas lanzar un error para poder atraparlo!

 of(1) .pipe( map((d) => d + 1), switchMap((d) => { if (d === 0) { return of(d + 1); } throwError(() => new Error('Erroooooor')); }) ) .toPromise() .then((d) => console.log(d)) // display indefined .catch(() => console.log('ERRRRRROOOOOOR')); // thrown if d !=== 0

También podría escribirse usando el operador iif

 of(1) .pipe( map((d) => d + 1), switchMap((d) => iif( () => d === 0, of(d + 1), throwError(() => new Error('Erroooooo')) ) ) ) .toPromise() .then((d) => console.log(d)) // display indefined .catch(() => console.log('ERRRRRROOOOOOR')); // thrown if d !=== 0
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda