Menu
CoddyTech

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.

challenge icon

Défi

Facile

Lance 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

Entraînez-vous par vous-même : Playground Express