Tengo este código nodejs aquí que lee una carpeta y procesa el archivo. El código funciona. Pero todavía está imprimiendo todo el nombre del archivo primero, luego solo lee el archivo. ¿Cómo obtengo un archivo y luego leo el contenido del archivo primero y no obtengo todos los archivos primero?
async function readingDirectory(directory) { try { fileNames = await fs.readdir(directory); fileNames.map(file => { const absolutePath = path.resolve(folder, file); log(absolutePath); fs.readFile(absolutePath, (err, data) => { log(data); // How to make it async await here? }); }); } catch { console.log('Directory Reading Error'); } } readingDirectory(folder);Para usar await , debe usar versiones de promesa de fs.readFile() y fs.readdir() que puede obtener en fs.promises y si desea que se ejecuten secuencialmente, use un bucle for en lugar de .map() :
async function readingDirectory(directory) { const fileNames = await fs.promises.readdir(directory); for (let file of fileNames) { const absolutePath = path.join(directory, file); log(absolutePath); const data = await fs.promises.readFile(absolutePath); log(data); } } readingDirectory(folder).then(() => { log("all done"); }).catch(err => { log(err); });