Menu
CoddyTech

Usando o resultado de um callback

Parte da seção Fundamentos de Node.js do Journey de Node.js da Coddy. Lição 17 de 33.

Uma leitura de arquivo pode terminar depois que a próxima linha do seu programa já tiver sido executada. Um callback é uma função passada para outra função chamar mais tarde. readFile chama a sua quando o arquivo está pronto. Ele passa primeiro um erro e, em seguida, o texto do arquivo.

readFile('greeting.txt', 'utf8', (err, text) => {
    if (err) return;
    console.log(text);
});

Coloque dentro dessa função o trabalho que precisa do texto. Fora dela, o texto ainda não chegou. O código inicial fornece a importação e um ramo de tratamento de erro; concentre-se em usar o resultado bem-sucedido.

challenge icon

Desafio

Fácil

Execute practice.js primeiro. Ele falha porque text ainda está indefinido quando a última linha é executada; a leitura do arquivo ainda não terminou.

Mova o trabalho que precisa do texto do arquivo para o ponto em que a leitura tiver terminado. Imprima o conteúdo em letras maiúsculas, mantendo o bloco de tratamento de erros. Remova a variável externa text quando ela não for mais necessária. Sem argumento, espere BUY MILK. Com other.txt, espere CALL ADA.

Experimente você mesmo

import { readFile } from 'node:fs';
const file = process.argv[2] ?? 'note.txt';
let text;
readFile(file, 'utf8', (err, contents) => {
    if (err) return;
    text = contents;
});
console.log(text.toUpperCase());

Todas as lições de Fundamentos de Node.js

Pratique por conta própria: Playground de Express