es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ngrx – Un error 500 generado por la api DELETE no activará la acción de fallo.

Cuando llamo a la API de eliminación desde mi aplicación angular con los parámetros correctos, la acción de éxito se activa y el comportamiento es el esperado. Si alguno de los parámetros o la URL es incorrecta, recibo las respuestas esperadas 401, 403 o 422, y la acción de fallo se activa, pero cuando se produce un error 500, la acción de fallo no se activa y la aplicación se queda en un estado pendiente como si la API nunca hubiera completado. ¿Alguna idea de por qué un error 500 no activaría una acción?

deleteItems$ = createEffect(() =>
this.actions$.pipe(
ofType(deleteItems),
withLatestFrom(this.store.pipe(select(getUser))),
switchMap(([action, user]) => {
return this.itemService.deleteItems(
user.company?.id ?? ”,
action.itemIds
).pipe(
map(() => deleteItemsSuccess(),
catchError(response => of(
deleteItemsFailure({
error: response.message
})
)))
)
})
)
)

Este no es un caso de tener una catchError de primer nivel que causa que el efecto complete su secuencia observable. Se puede llamar varias veces después de un error 500.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error 500 no está activando la acción de falla.

    Es posible que el error 500 no esté siendo capturado por el operador catchError. Para asegurarse de que el error 500 está siendo capturado, puede agregar un segundo operador catchError después del primero. Esto asegurará que cualquier error que no sea capturado por el primer operador catchError será capturado por el segundo.

    También puede intentar registrar la respuesta de la API para ver qué tipo de error está siendo devuelto. Esto le ayudará a determinar si el error 500 está siendo capturado por el operador catchError o no.

Comments are closed.