Menu
CoddyTech

Gdy Promise zawiedzie

Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 20 z 33.

Obietnica może również zakończyć się niepowodzeniem, na przykład gdy plik nie istnieje. Nazywa się to odrzuceniem. .catch dostarcza kod do uruchomienia w razie niepowodzenia. .finally uruchamia się po sukcesie albo niepowodzeniu, co przydaje się do wyświetlenia końcowego komunikatu.

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

Gdy odczyt się nie powiedzie, funkcja zwrotna obsługująca sukces jest pomijana. Przykład wypisuje No file, a następnie Finished. Komunikat o niepowodzeniu należy umieścić w catch, dzięki czemu odczyt zakończony sukcesem go nie wypisze.

challenge icon

Wyzwanie

Łatwy

Najpierw uruchom practice.js: brakujący plik powoduje nieobsłużony błąd ENOENT.

Zachowaj funkcję zwrotną wywoływaną po pomyślnym odczycie. Dodaj .catch, aby w razie niepowodzenia wypisać No notes yet, a następnie .finally, aby wypisać Done niezależnie od wyniku. Bez argumentów wiersze to No notes yet i Done. Wypróbuj note.txt: wiersze to Buy milk i Done.

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji Podstawy Node.js

Poćwicz samodzielnie: Edytor online Express