Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

128
Visualizações
Manejo del estado 500 con prueba y captura

No puedo decir cuál es la forma óptima de manejar el estado 500 enviado por mi API. ¿Me podría ayudar? En el caso a continuación, cuando mi API responde con un estado 500, deseo configurar un mensaje de error en mi tienda redux. Cuando mi API envió un código de estado exitoso, deseo "Buscar los mazos de usuario" en mi tienda.

Mi primer intento me pareció lógico y seco, pero no funcionó:

 const createDeck = async () => { try { const request = await fetch(`${back}/deck/`, options) const response = await request.json() store.dispatch({ type: FETCH_USER_DECKS }) } catch (error) { store.dispatch({ type: SET_ERROR, message: error }) } }

Cuando la API envía un estado 500, no parece que se produzca ninguna excepción y se ignora el código en mi bloque catch.

Mi segundo y tercer intento funcionaron, ya que también los excluí, pero se sienten complicados y extraños:

2do intento:

 const createDeck = async () => { try { const request = await fetch(`${back}/deck/`, options) const response = await request.json() if (request.status === 201 || request.status === 200) { store.dispatch({ type: FETCH_USER_DECKS }) } else { store.dispatch({ type: SET_ERROR, message: error }) } } catch (error) { console.log('error') } }

Esto funciona, pero ignora por completo el bloque catch, lo que me hace preguntarme: ¿cuál es el punto de intentar... atrapar entonces?

Tercer intento:

 const createDeck = async () => { try { const request = await fetch(`${back}/deck/`, options) const response = await request.json() if (request.status === 201 || request.status === 200) { store.dispatch({ type: FETCH_USER_DECKS }) } else { throw response } } catch (error) { store.dispatch({ type: SET_ERROR, message: error }) } }

Este tercer intento hace uso de catch, pero se siente extraño lanzar manualmente una excepción, para ser atrapado inmediatamente por catch.

¿Me estoy perdiendo de algo?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Isbn ha respondido adecuadamente a esto en los comentarios. Lo pongo aquí nuevamente para mayor visibilidad: "Dado que está usando fetch (), probablemente tendría sentido adoptar su modelo de implementación y no considerar una respuesta 500 como una excepción (intento 2). Pero no vería algo malo con su tercer intento tampoco (axios, por ejemplo, generaría un error en ese caso). Tenga en cuenta que la respuesta fetch () expone una propiedad ok para verificar si la solicitud tuvo éxito o no "

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda