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

162
Vistas
¿Qué es una alternativa de forkJoin que permite completar solicitudes paralelas si una de ellas falla?

Quiero ejecutar algunas solicitudes en paralelo usando forkJoin y combinar sus resultados como se muestra a continuación. Sin embargo, cuando una de las solicitudes falla, el navegador cancela automáticamente el resto de las suscripciones. ¿Cuál es una alternativa simple a forkJoin que me permite ejecutar solicitudes en paralelo y si una suscripción falla, el resto puede completarse?

 const posts = this.http.get("https://myApi.com/posts?userId=1"); const albums = this.http.get("https://myApi.com/albums?userId=1"); forkJoin([posts, albums]).subscribe((result) => { this.print(result[0], result[1]); }); print(res1, res2) { const message = res1.text + res2.text; console.log(message); }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede lograrlo usando forkJoin , sin embargo, debe manejar los errores para cada sub Observable por separado usando catchError para evitar cancelar la transmisión si ocurre algún error.

Puedes intentar algo como lo siguiente:

 // import { catchError } from 'rxjs/operators'; // import { forkJoin, of } from 'rxjs'; const posts = this.http .get('https://myApi.com/posts?userId=1') .pipe(catchError((err) => of(err))); const albums = this.http .get('https://myApi.com/albums?userId=1') .pipe(catchError((err) => of(err))); forkJoin([posts, albums]).subscribe((result) => { this.print(result[0], result[1]); });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Yo haría una función como

 forkJoinReplaceErrors<T,R>( observables: Observable<T>[], ifError: ObservableInput<R> ) { return forkJoin( observables.pipe( catchError(() => ifError) ) ); }

y luego use eso en lugar de forkJoin . Entonces es más reutilizable y se puede probar la unidad.

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