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

193
Visualizações
¿Cómo obtiene varias páginas de datos en una matriz?

Aquí está mi código

 let url; let planetCount; let planetData = []; //turn through the pages for (let p = 1; p < 7; p++) { url = `https://swapi.boom.dev/api/planets?page=${p}`; //fetch data for (let j = 0; j < 1; j++) { fetch(url).then(res => res.json()) .then(data => { //push data to array for (let i = 0; i < data.results.length; i++) { planetData.push(data.results[i]); } }) console.log(planetData) } }

Y aquí está el resultado: https://i.stack.imgur.com/Hivwr.png

Problema : ¿Cómo lo hago para que todo entre en una matriz, en lugar de 6?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Solo tienes una matriz. Obtiene una salida seis veces porque ejecuta console.log() dentro de un bucle.

Expandí su código con la forma correcta de manejar varias llamadas asíncronas y esperar hasta que terminen:

 let url; let planetCount; let planetData = [] let promises = []; //turn through the pages for (let p = 1; p < 7; p++) { url = `https://swapi.boom.dev/api/planets?page=${p}`; //fetch data for (let j = 0; j < 1; j++) { promises.push(fetch(url).then(res => res.json()) .then(data => { //push data to array for (let i = 0; i < data.results.length; i++) { planetData = planetData.concat(data.results[i]); } })); } } Promise.all(promises) .then(() => { console.log(planetData.length, '=>', planetData); })

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar async/await await y Promise.all() para devolver una matriz de las páginas devueltas. Una vez que tengamos esto, podemos usar Array.flat() para crear una matriz contigua de datos de planetas:

 async function getPlanets() { const urls = Array.from( { length: 7 }, (v,i) => `https://swapi.boom.dev/api/planets?page=${i + 1}` ); const promises = urls.map(url => fetch(url).then(res => res.json()).then(data => data.results)); const planetData = (await Promise.all(promises)).flat(); console.log(`Results for ${planetData.length} planets downloaded...`); console.log('Results:', planetData); } getPlanets()

about 4 years ago · Juan Pablo Isaza Relatório

0

¿Responde esto a tu pregunta? ¿Cómo puedo obtener una matriz de URL con Promise.all?

Promete que todo debe ser la herramienta adecuada para que la uses, de modo que esperes hasta que se resuelvan todas las promesas antes de manejar las respuestas.

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