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

68
Vistas
best way to handle backup API calls

I want get data from an API. This API has multiple URLs (for backup). Now I want to request URL1 first, if that returns data: Don't try the backup URLs. If URL doesn't return data, keep on trying. Here is what I have (and that seems to work as far as I can tell) but it looks really stupid:

const getData = async () => {
  let returnData = null;

  try {
    returnData = await axios.get(`${URL[0]}/${path}`);
  } catch (error) {
    console.error(`Error fetching data: ${URL[0]}`, error);
  }

  if (!returnData) {
    try {
      returnData = await axios.get(`${URL[1]}/${path}`);
    } catch (error) {
      console.error(`Error fetching data: ${URL[1]}`, error);
    }
  }

  if (!returnData) {
    try {
      returnData = await axios.get(`${URL[2]}/${path}`);
    } catch (error) {
      console.error(`Error fetching data: ${URL[2]}`, error);
    }
  }

  if (!returnData) {
    try {
      returnData = await axios.get(`${URL[3]}/${path}`);
    } catch (error) {
      console.error(`Error fetching data: ${URL[3]}`, error);
    }
  }

  if (!returnData) {
    try {
      returnData = await axios.get(`${URL[4]}/${path}`);
    } catch (error) {
      console.error(`Error fetching data: ${URL[4]}`, error);
    }
  }

  if (!returnData) {
    try {
      returnData = await axios.get(`${URL[5]}/${path}`);
    } catch (error) {
      console.error(`Error fetching data: ${URL[5]}`, error);
    }
  }

  if (!returnData) {
    try {
      returnData = await axios.get(`${URL[6]}/${path}`);
    } catch (error) {
      console.error(`Error fetching data: ${URL[6]}`, error);
      throw new Error('last try fetching data:', error);
    }
  }

  return returnData;
}

What is the way to go here?

about 4 years ago · Juan Pablo Isaza
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