En mi aplicación Angular, al realizar con éxito un POST al servidor, recibo una respuesta 201 que contiene una ubicación en los encabezados de respuesta a los que deseo acceder dentro de mis efectos NGRX. La ubicación contiene una identificación que necesito en otro efecto para activar una llamada de servicio.
ACCIÓN NGRX:
export const postJobOfferSuccess = createAction('[JobOffer] Post jobOffer success', props<{ successMessage: string, publish: boolean, final: boolean, response: HttpHeaderResponse }>());
EFECTO NGRX:
postJobOffer$ = createEffect(() =>
this.actions$.pipe(
ofType(postJobOffer),
mergeMap(action => {
return this.jobOfferClientService.postJobOffer(action.jobOffer).pipe(
map((response) => postJobOfferSuccess({ successMessage: 'Success', publish: action.publish, final: action.final, response: response.HttpHeaderResponse })),
mapErrorToAction(postJobOfferFailed)
);
})
)
);
Esperaría que mi postJobOfferSuccess contenga una respuesta con HTTPHeaderResponse, sin embargo, al inspeccionar mi pestaña redux, no muestra la respuesta del encabezado. ¿Cómo puedo acceder a HTTPHeaderResponse dentro de un efecto?
mi pestaña redux:
Solución del problema
En su servicio tiene que escuchar la respuesta:
this.http.post('http//...', payload, { observe: 'response' }).pipe(
tap(res => console.log(res)) // headers = res.headers | data = res.body
);
No hay comentarios.:
Publicar un comentario