Menu
CoddyTech

Когда 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, чтобы при успешном чтении оно не выводилось.

challenge icon

Задание

Легко

Сначала запусти 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

Потренируйтесь самостоятельно: Песочница Express