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

570
Vistas
Múltiples llamadas Http en un @ngrx/effect

Estoy muy confundido y soy nuevo en @ngrx, así que perdónenme por no entender cómo se supone que funciona esto.

Digamos que tengo un efecto que se llama PlaceOrderEffect

En este sentido, quiero procesar cada solicitud en orden.

 processOrder$ = createEffect( ofType(OrderActions.PROCESS_ORDER), //here is where i get confused concatMap([ this.service.addCrust(), this.service.addTopings(), this.service.sendToCook() this.service.checkOut() ] )

¿Cómo puedo ejecutarlos en orden secuencial y manejar la respuesta final?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

concatMap es el operador RxJS que se usará con pipe , para fusionar la fuente observable con la nueva devuelta por concatMap , que no es su caso.

Creo que puede usar la función RxJS concat para lograr lo que está tratando de hacer si las solicitudes no dependen unas de otras, como la siguiente:

 processOrder$ = createEffect(() => this.actions$.pipe( ofType(OrderActions.PROCESS_ORDER), // here you need to switch and map to the new observable (concat one) returned by switchMapTo operator switchMap(({ payload }) => concat( this.service.addCrust(), this.service.addTopings(), this.service.sendToCook(), this.service.checkOut() ) ) ) );

Pero si cada solicitud depende de la anterior, puede usar el operador concatMap como el siguiente:

 processOrder$ = createEffect(() => this.actions$.pipe( ofType(OrderActions.PROCESS_ORDER), concatMap(({ payload }) => this.service.addCrust(payload)), concatMap((response1) => this.service.addTopings(response1)), concatMap((response2) => this.service.sendToCook(response2)), concatMap((response3) => this.service.checkOut(response3)) ) );
over 4 years ago · Santiago Trujillo 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