Menu
CoddyTech

Callbacks

Parte da seção Fundamentos de Node.js do Journey de Node.js da Coddy. Lição 14 de 24.

Ler um arquivo grande leva tempo, e um programa que fica esperando por ele não faz mais nada nesse meio-tempo.

fs.readFile(path, 'utf8', callback) inicia a leitura e retorna imediatamente. Quando o arquivo é carregado, o Node chama seu callback com (err, text). err é null em caso de sucesso e contém um erro caso contrário, então verifique-o primeiro. Tudo o que precisa do texto fica dentro do callback.

import fs from 'node:fs';

fs.readFile('poem.txt', 'utf8', (err, text) => {
    if (err) {
        console.log('No poem today');
        return;
    }
    console.log(text.split('\n').length + ' lines');
});
console.log('Asked for the poem');

Asked for the poem é impresso primeiro: a linha após readFile é executada enquanto o arquivo ainda está sendo carregado.

challenge icon

Desafio

Fácil
  • count.js exibe Reading..., depois <n> notes dentro do callback e, em seguida, Done, também dentro do callback.
  • Quando não é possível ler o arquivo, ele exibe Cannot read <file> em vez da contagem.

Execute node count.js e, em seguida, node count.js nothere.json.

Experimente você mesmo

import fs from 'node:fs';

const file = process.argv[2] ?? 'notes.json';

console.log('Reading...');
// Leia o arquivo com fs.readFile e uma função de callback.
// Imprima o número de notas e, em seguida, Done.
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

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