Me gustaría detener una solicitud cuando la base de datos está fuera de línea o cuando hay un problema con la conexión de backend, pero no sé cómo hacerlo.
La configuración de mi Axios es la siguiente:
import axios from "axios"; import AsyncStorage from '@react-native-async-storage/async-storage'; const baseURL = 'http://192.168.1.43:4000/server'; const gestorMedicoApi = axios.create({ baseURL}); gestorMedicoApi.interceptors.request.use( async (config) => { const token = await AsyncStorage.getItem('token'); if (token) { config.headers!['x-token'] = token; } return config; } ) export default gestorMedicoApi;Y un ejemplo de solicitud es el siguiente:
const signUp = async ({ nombreEmpresa, email, telefono, contraseña }: RegisterData) => { try { const resp = await gestorMedicoApi.post<Response>('/user/createUser', { nombreEmpresa, email, telefono, contraseña }); dispatch({ type: 'signUp', payload: {response: resp.data} }) } catch (error: any) { dispatch({ type: 'addError', payload: {response: {status: "NOK", message: "Se ha producido un error al conectar con la base de datos."}} }) } };Si la siguiente línea falla:
const resp = await gestorMedicoApi.post<Response>('/user/createUser', { nombreEmpresa, email, telefono, contraseña });El flujo entra en la captura, pero la solicitud intenta conectarse una y otra vez, por lo que me gustaría detener la solicitud si falla.
¿Cómo puedo obtenerlo?
axios no hace solicitudes repetitivas. Es posible que su componente se vuelva a renderizar o que esté atascado en un bucle que llama a su función de registro continuamente. Vuelva a verificar su código y, si es posible, proporcione más fragmentos.