Utiliser le résultat d’un callback
Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 17 sur 33.
La lecture d’un fichier peut se terminer après que la ligne suivante de votre programme a déjà été exécutée. Un rappel est une fonction transmise à une autre fonction pour être appelée plus tard. readFile appelle la vôtre lorsque le fichier est prêt. Elle transmet d’abord une erreur, puis le texte du fichier.
readFile('greeting.txt', 'utf8', (err, text) => {
if (err) return;
console.log(text);
});Placez dans cette fonction le travail qui nécessite le texte. En dehors de celle-ci, le texte n’est pas encore arrivé. Le code de départ fournit l’importation et une branche de gestion des erreurs ; concentrez-vous sur l’utilisation du résultat obtenu en cas de réussite.
Défi
FacileLance d’abord practice.js. L’exécution échoue parce que text n’est pas encore défini lorsque la dernière ligne s’exécute ; la lecture du fichier n’est pas terminée.
Déplace le travail qui nécessite le texte du fichier à l’endroit où la lecture est terminée. Affiche le contenu en majuscules, en conservant la branche de gestion des erreurs. Supprime la variable externe text lorsqu’elle n’est plus nécessaire. Sans argument, le résultat attendu est BUY MILK. Avec other.txt, le résultat attendu est CALL ADA.
Essayez vous-même
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());
Toutes les leçons de Les bases de Node.js
1Exécuter JavaScript avec Node
Bonjour, NodeLire la commandeArguments de ligne de commandeCommandes4Node asynchrone
Utiliser le résultat d’un callbackCallbacksLe résultat d’une PromiseQuand une Promise échouePromisesAttendre une valeurAsync et awaitDeux lectures indépendantesPromise.allLa boucle d’événementsMinuteries5Événements, entrées et packages
Écouter avant d’émettreÉmetteurs d’événementsLire les entréesEntraînez-vous par vous-même : Playground Express