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

222
Visualizações
Await no es como esperaba en declaraciones if else
let metadata = []; allNFTs.map(async (e) => { if (e.metadata) { metadata.push(JSON.parse(e.metadata).attributes); } else { let config = { method: "get", url: `http://localhost:3000/api/fetch`, header: { "Content-Type": "application/json", }, }; const res = await axios(config); const attr = res.data.attributes; metadata.push(attr); console.log(metadata); // this one worked after below } }); console.log(metadata); // this one worked before above

ingrese la descripción de la imagen aquí

Pero quiero esperar hasta que mi axios termine de buscar, para poder finalmente consolar. registrar mis metadatos reales.

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

0

Haz una serie de promesas y luego espéralas con Promise.all

 const metadataPromises = allNFTs.map((e) => { if (e.metadata) { return Promise.resolve(JSON.parse(e.metadata).attributes); } else { let config = { method: "get", url: `http://localhost:3000/api/fetch`, header: { "Content-Type": "application/json", }, }; return axios(config).then((res) => res.data.attributes); } }); // await still has to be in an async function const metadata = await Promise.all(metadataPromises); console.log(metadata); // or use .then Promise.all(metadataPromises).then((metadata) => console.log(metadata));
about 4 years ago · Juan Pablo Isaza Relatório

0

El problema con tu código, que no esperas. El último console.log se ejecuta antes de que el mapa itere todos los elementos.

Deberías usar algo así: https://www.npmjs.com/package/modern-async Por ejemplo

 async function init() { var ma= require('modern-async') await ma.mapSeries(allNFTs,async (e)=>{ if (e.metadata) { metadata.push(JSON.parse(e.metadata).attributes); } else { let config = { method: "get", url: `http://localhost:3000/api/fetch`, header: { "Content-Type": "application/json", }, }; const res = await axios(config); const attr = res.data.attributes; metadata.push(attr); console.log(metadata); } }) console.log(metadata); }
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