Attendere un valore
Fa parte della sezione Fondamenti di Node.js del percorso Node.js di Coddy. Lezione 22 di 33.
Un'espressione await ti permette di scrivere il passaggio successivo dopo la lettura, invece che all'interno di una callback then. Attende questa promise e ne restituisce il risultato. Mentre la lettura è in attesa, possono comunque essere eseguite altre operazioni.
const text = await readFile('name.txt', 'utf8');
console.log(text.toUpperCase());Senza await, text conterrebbe la promise, che non dispone di metodi per le stringhe. Questi file sono moduli, quindi await è consentito al di fuori di una funzione. All'interno di una funzione, contrassegna la funzione come async. Anche una funzione async restituisce una promise a chi la chiama.
Sfida
FacileEsegui prima practice.js. L’errore indica che text.toUpperCase is not a function: text contiene una promise, non il testo del file.
Fai in modo che text contenga la lettura completata prima che il programma lo usi. Mantieni la funzione asincrona per i file. Esegui di nuovo: l’output è BUY MILK.
Esegui passando l’argomento other.txt: il secondo file fornito deve stampare CALL ADA. Mantieni l’espressione del nome file fornito.
Provalo tu
import { readFile } from 'node:fs/promises';
const text = readFile(process.argv[2] ?? 'note.txt', 'utf8');
console.log(text.toUpperCase());
Tutte le lezioni di Fondamenti di Node.js
Esercitati da solo: Playground Express