Menu
CoddyTech

Usar el resultado de un callback

Parte de la sección Conceptos básicos de Node.js del Journey de Node.js de Coddy. Lección 17 de 33.

La lectura de un archivo puede terminar después de que ya se haya ejecutado la siguiente línea de tu programa. Una función de devolución de llamada es una función que se entrega a otra función para que la llame más tarde. readFile llama a la tuya cuando el archivo está listo. Primero le pasa un error y después el texto del archivo.

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

Pon dentro de esta función el trabajo que necesite el texto. Fuera de ella, el texto aún no ha llegado. El código inicial proporciona la importación y una rama para el error; céntrate en usar el resultado correcto.

challenge icon

Desafío

Fácil

Ejecuta practice.js primero. Falla porque text todavía no está definido cuando se ejecuta la última línea; la lectura del archivo no ha terminado.

Mueve el trabajo que necesita el texto del archivo al punto en que la lectura haya terminado. Imprime el contenido en mayúsculas, manteniendo la rama de error. Elimina la variable externa text cuando ya no sea necesaria. Sin argumentos, espera BUY MILK. Con other.txt, espera CALL ADA.

Pruébalo tú mismo

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 las lecciones de Conceptos básicos de Node.js

Practica por tu cuenta: Playground de Express