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

230
Visualizações
Use Axios .then() con la variable de índice de bucle for

Quiero iterar algunas URL de página, almacenadas en una matriz, y recuperarlas para realizar una operación sobre su archivo html. Como necesito almacenar un resultado de dicha operación para cada página para usarlos la próxima vez que llame a la función, quiero pasar el índice (i) en la llamada onResponse para que pueda asignar el resultado a su lugar adecuado en el formación. Pero en lugar de usar el valor i de la i-ésima iteración respectiva, esta llamada de función usa pages.length (el último valor de i). Sé por qué sucede esto, pero no sé cuál sería una buena solución. ¿Alguna ayuda aquí?

 async function checkPages(){ const dateObj = new Date(); console.log(pages.length) console.log(`Time: ${dateObj.toTimeString()}\n`); for (var i = 0; i < pages.length; i++){ axios.get(pages[i], { httpsAgent }) .then(response => onResponse(response, i) ) .catch(function (error) { onError(error) }); }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

intenta usar let en lugar de var

 for (let i = 0; i < pages.length; i++) {

let tienen alcance de bloque y var tienen alcance de función.

Dado que está llamando a un método async , al usar var finalizará el ciclo for y pasará el último valor a la devolución de llamada. Pero usar let mantendrá la variable asignada en el alcance del bloque en la devolución de llamada.

Aquí está la definición de let , y aquí está la de var .

about 4 years ago · Juan Pablo Isaza Relatório

0

axios.get es una promesa, por lo que su foreach está iniciando todas las solicitudes http y llego a la longitud de la matriz antes de i obtenga una respuesta de su API.

Probar:

 async function checkPages() { const results = await Promise.all( pages.map((page) => axios.get(page, { httpsAgent }).catch((error) => { onError(error); }) ) ); results.forEach((response, i) => { onResponse(response, i); }); }
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