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

89
Visualizações
Promete JavaScript que devuelve una matriz vacía

La función createFolder() está devolviendo una matriz vacía. No estoy seguro de lo que estoy haciendo mal, pero debe devolver los elementos dentro de project_array

 function get_project_folders(){ return new Promise((resolve, reject)=>{ fs.readdir(__dirname + '/projects', (error, data1)=>{ if(error){ reject(console.log(`Error. Unable to read directory - ${error}`)) }else{ resolve(data1) } }) }) }
 async function createFolder(){ let list_of_projects = await get_project_folders() let project_array = [] return new Promise((resolve, reject)=>{ for(let project of list_of_projects){ let splitProject = project.split("-") fs.readdir(__dirname + `/projects/${splitProject[0]}-${splitProject[1]}`, (error, data1)=>{ if(error){ console.log('Error. Unable to read directory.') }else{ project_array.push({circuit: splitProject[0], fuse: splitProject[1], pole: data1}) } }) } resolve(project_array) }) }
 async function testIt(){ let folderData = await createFolder() console.log(folderData) } testIt()
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Este es un clásico, lo que está haciendo es resolver la promesa con la matriz vacía antes de que se hayan resuelto los métodos asincrónicos de su nodo fs. Prueba esto en su lugar:

 async function createFolder(){ const list_of_projects = await get_project_folders(); const result = await Promise.all( list_of_projects.map(project => new Promise((resolve, reject) => { const splitProject = project.split("-"); fs.readdir(__dirname + `/projects/${splitProject[0]}-${splitProject[1]}`, (error, data1) => { if(error){ console.error('Error. Unable to read directory.'); resolve( null ); } else { resolve({ circuit: splitProject[0], fuse: splitProject[1], pole: data1 }); } }); }); // Filter out the errors that resolved as `null` return result.filter( Boolean ); }

En esencia, envuelva cada fs. llame a una promesa, luego use Promise.all para generar una matriz de promesas. Debido a que Promise.all requiere que todo se resuelva para que se resuelva, asegúrese de resolver incluso cuando haya un error; simplemente devuelva algo falso (en mi caso, null ) para que pueda filtrarlo más tarde.

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