Olá, seguindo a sequência da aula no tempo 10:20 tenta-se executar o código e o retorno é uma 'promise'.. ok, a função estava sem async/await, só que no meu código eu executo e a função retorna os valores corretamente, não consegui sacar o motivo disso... no caso o código é:
async function processaTexto(args){
const path = args[2]
if(fs.lstatSync(path).isFile()){
const result = await pegaArquivo(path)
console.log(chalk.blue('Lista de Links'), result)
} else if (fs.lstatSync(path).isDirectory()) {
const files = await fs.promises.readdir(path)
files.forEach((fileName) => {
const lista = pegaArquivo(`${path}/${fileName}`)
console.log(chalk.yellow(`${path}/${fileName}`))
})
console.log(files)
}
}
Sendo mais específico na parte
files.forEach((fileName) => {
const lista = pegaArquivo(`${path}/${fileName}`)
Quando a Professora Juliana recebe 2 promises de retorno ela altera o código para,
files.forEach( async (fileName) => {
const lista = await pegaArquivo(`${path}/${fileName}`)
mas no meu código eu executei antes de alterar (assim como está no primeiro bloco de código) e recebi o resultado corretamente.
Link github https://github.com/rnfrafael/2708-node-lib-md
O que houve no código que deu certo? Fico pensando que a função pegaArquivo é uma função async então já resolve, mas o que não entendo é porque no código da aula houve necessidade de esperar/await na chamada da função.