Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!