Menu
CoddyTech

Quando una Promise fallisce

Fa parte della sezione Fondamenti di Node.js del percorso Node.js di Coddy. Lezione 20 di 33.

Una promessa può anche fallire, per esempio quando un file non esiste. Questo si chiama rifiuto. .catch fornisce il codice da eseguire in caso di errore. .finally viene eseguito dopo un successo o un errore, ed è utile per un messaggio conclusivo.

readFile('weather.txt', 'utf8')
    .then((text) => console.log(text))
    .catch(() => console.log('No file'))
    .finally(() => console.log('Finished'));

Quando la lettura non riesce, la relativa funzione di callback per il successo viene saltata. L'esempio stampa No file e poi Finished. Il messaggio di errore va inserito in catch, così una lettura riuscita non lo stamperebbe.

challenge icon

Sfida

Facile

Esegui prima practice.js: il file mancante causa un errore ENOENT non gestito.

Mantieni il callback di lettura riuscita. Aggiungi .catch per stampare No notes yet in caso di errore, poi .finally per stampare Done in entrambi i casi. Senza argomenti, le righe sono No notes yet e Done. Prova note.txt: le righe sono Buy milk e Done.

Provalo tu

import { readFile } from 'node:fs/promises';
readFile(process.argv[2] ?? 'missing.txt', 'utf8').then((text) => console.log(text));

Tutte le lezioni di Fondamenti di Node.js

Esercitati da solo: Playground Express