Ожидание значения
Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 22 из 33.
Выражение await позволяет написать следующий шаг после чтения, а не внутри обратного вызова then. Оно ожидает выполнения этого промиса и возвращает его результат. Пока чтение ожидает, может выполняться и другая работа.
const text = await readFile('name.txt', 'utf8');
console.log(text.toUpperCase());Без await переменная text хранила бы промис, у которого нет строковых методов. Эти файлы являются модулями, поэтому await разрешено использовать вне функции. Внутри функции пометьте её как async. Асинхронная функция также возвращает промис вызывающему её коду.
Задание
ЛегкоСначала запусти practice.js. В сообщении об ошибке говорится, что text.toUpperCase is not a function: в text хранится промис, а не текст файла.
Сделай так, чтобы в text хранился результат чтения файла до того, как программа его использует. Оставь асинхронную функцию для работы с файлом. Запусти снова: вывод — BUY MILK.
Запусти программу с аргументом other.txt: должно быть выведено содержимое второго переданного файла — CALL ADA. Оставь выражение с именем файла.
Попробуйте сами
import { readFile } from 'node:fs/promises';
const text = readFile(process.argv[2] ?? 'note.txt', 'utf8');
console.log(text.toUpperCase());
Все уроки раздела Основы Node.js
Потренируйтесь самостоятельно: Песочница Express