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.
Desafío
FácilEjecuta 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
1Ejecutar JavaScript en Node
Hola, NodeLeer el comandoArgumentos de línea de comandosComandos4Node asíncrono
Usar el resultado de un callbackCallbacksEl resultado de una PromiseCuando una Promise fallaPromisesEsperar un valorAsync y awaitDos lecturas independientesPromise.allEl bucle de eventosTemporizadoresPractica por tu cuenta: Playground de Express