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

138
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 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