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

135
Vistas
¿Obtengo el código de error 400 cuando ejecuto axios get request?

Escribo un código para obtener información.

 const stock = await Stock.find({ exchange: exchange }); // Here stock array length is 5300 stock.forEach(async (stockEl) => { const EOD_API = process.env.EOD_HISTORICAL_API const {data} = await axios.get(`https://eodhistoricaldata.com/api/fundamentals/${stockEl.code}?api_token=${EOD_API}&filter=General::Industry`); console.log(data); });

Aquí coloco una solicitud de obtención para cada elemento de matriz de existencias mediante la función forEach . Luego me da error como imagen- Click para ver imagenes

Pero cuando lo coloco fuera de la función forEach así:

 const EOD_API = process.env.EOD_HISTORICAL_API const {data} = await axios.get(`https://eodhistoricaldata.com/api/fundamentals/${stockEl.code}?api_token=${EOD_API}&filter=General::Industry`); console.log(data);

Entonces no da error. Para Remembering Stock tiene 5300 elementos, eso significa que axios se ejecuta 5300 veces.

¿Alguna solución o idea?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esperar en forEach no detiene el proceso ya que forEach no reconoce promesas. Prueba esto en su lugar:

 (async () => { for (let index = 0; index < stock.length; index++) { const EOD_API = process.env.EOD_HISTORICAL_API const {data} = await axios.get(`https://eodhistoricaldata.com/api/fundamentals/${stock[i].code}?api_token=${EOD_API}&filter=General::Industry`); console.log(data); } })();

Más información

about 4 years ago · Juan Pablo Isaza Denunciar

0

Necesitas hacer algunos cambios:

  • Reemplace forEach con for porque forEach no es consciente de la promesa

  • Use probar, atrapar => atrapar cualquier error

  • Use Promise.allSettled => le permite ejecutar todas las promesas juntas sin tener que esperar entre sí, lo que a cambio mejorará el rendimiento de su aplicación. Devuelve una matriz con estado ("cumplido", "rechazado")

     const fetchSingleStockElement = async (stockEl) => { try { const EOD_API = process.env.EOD_HISTORICAL_API, { data } = await axios( `https://eodhistoricaldata.com/api/fundamentals/${stockEl.code}?api_token=${EOD_API}&filter=General::Industry` ); return data; } catch (err) { throw new Error(err); } }; const fetchAllStockData = async () => { let promisesArray = []; try { //fetch stock array const { data } = await Stock.find({ exchange: exchange }); //fetch single stock for (let i = 0; i < data.length; i++) { promisesArray.push(fetchSingleStockElement(data[i].id)); } const results = await Promise.allSettled(promisesArray); console.log('results', results); } catch (err) { console.log('results error', err); }

    };

Aquí hay un ejemplo de trabajo con una API falsa de 4466 entradas:

 const fetchSingleAirline = async (airlineId) => { try { const { data } = await axios(`https://api.instantwebtools.net/v1/airlines/${airlineId}`); return data; } catch (err) { throw new Error(err); } }; const fetchAllAirlineData = async () => { let promisesArray = []; try { const { data } = await axios('https://api.instantwebtools.net/v1/airlines'); for (let i = 0; i < data.length; i++) { promisesArray.push(fetchSingleAirline(data[i].id)); } const results = await Promise.allSettled(promisesArray); console.log('results', results); } catch (err) { console.log('results error', err); } };
about 4 years ago · Juan Pablo Isaza Denunciar
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