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.
Wyzwanie
ŁatwyNajpierw 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
1Uruchamianie JavaScript w Node
Witaj, NodeOdczytywanie poleceniaArgumenty wiersza poleceńPolecenia4Asynchroniczny Node
Korzystanie z wyniku funkcji zwrotnejFunkcje zwrotneWynik PromiseGdy Promise zawiedziePromiseOczekiwanie na wartośćAsync i AwaitDwa niezależne odczytyPromise.allPętla zdarzeńTimery5Zdarzenia, dane wejściowe i pakiety
Nasłuchuj przed emisjąEmitery zdarzeńOdczytywanie danych wejściowychPoćwicz samodzielnie: Edytor online Express