Когда Promise завершается ошибкой
Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 20 из 33.
Промис также может завершиться ошибкой, например, если файл не существует. Это называется отклонением. .catch задаёт код, который выполняется при ошибке. .finally выполняется после успеха или ошибки, что полезно для заключительного сообщения.
readFile('weather.txt', 'utf8')
.then((text) => console.log(text))
.catch(() => console.log('No file'))
.finally(() => console.log('Finished'));Если чтение завершается ошибкой, функция обратного вызова для успешного выполнения пропускается. Пример выводит No file, а затем Finished. Сообщение об ошибке должно находиться в catch, чтобы при успешном чтении оно не выводилось.
Задание
ЛегкоСначала запусти practice.js: из-за отсутствующего файла возникает необработанная ошибка ENOENT.
Оставь callback успешного чтения. Добавь .catch, чтобы при ошибке вывести No notes yet, затем .finally, чтобы в любом случае вывести Done. Без аргументов строки будут такими: No notes yet и Done. Попробуй note.txt: строки будут такими: Buy milk и Done.
Попробуйте сами
import { readFile } from 'node:fs/promises';
readFile(process.argv[2] ?? 'missing.txt', 'utf8').then((text) => console.log(text));
Все уроки раздела Основы Node.js
1Запуск JavaScript в Node
Привет, NodeЧтение командыАргументы командной строкиКоманды4Асинхронность в Node
Использование результата callback-функцииКолбэкиРезультат PromiseКогда Promise завершается ошибкойПромисыОжидание значенияAsync и AwaitДва независимых чтенияPromise.allЦикл событийТаймерыПотренируйтесь самостоятельно: Песочница Express