Menu
CoddyTech

Deux lectures indépendantes

Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 24 sur 33.

Deux lectures peuvent commencer en même temps lorsqu’aucune n’a besoin du résultat de l’autre. Promise.all prend leurs promesses et renvoie une promesse unique contenant un tableau de résultats. Attends ce tableau une seule fois.

const [name, city] = await Promise.all([
    readFile('name.txt', 'utf8'),
    readFile('city.txt', 'utf8'),
]);

Le premier résultat correspond à la première promesse, même si la deuxième lecture se termine plus tôt. Les crochets attribuent les deux résultats à des variables distinctes. Si l’une ou l’autre lecture échoue, la promesse combinée est rejetée. Utilise des await distincts lorsqu’une opération a besoin du résultat précédent.

Le lecteur d’exercice fourni refuse une lecture qui est awaitée avant que l’autre ait commencé. Cela rend visible une attente trop précoce ; il ne mesure pas la vitesse d’exécution.

challenge icon

Défi

Facile

Il s’agit d’un petit projet d’entraînement. Sa configuration est fournie ; modifie uniquement practice.js.

Lis note.txt et owner.txt avec Promise.all. Utilise les résultats pour afficher Ada: Buy milk. Garde note en premier dans le tableau d’entrée. « Jouer » exécute node practice.js.

Utilise le lecteur importé. Lance les deux lectures avant d’attendre ; ce lecteur d’entraînement refuse délibérément les attentes séquentielles.

Utilise les valeurs fournies noteFile et ownerFile. Lance avec other-note.txt other-owner.txt : le résultat attendu est Bo: Walk.

Essayez vous-même

import { readFile } from './reader.js';
const [noteFile = 'note.txt', ownerFile = 'owner.txt'] = process.argv.slice(2);
const note = '';
const owner = '';
console.log(owner + ': ' + note);

Toutes les leçons de Les bases de Node.js

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