Использование результата callback-функции
Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 17 из 33.
Чтение файла может завершиться уже после того, как следующая строка вашей программы выполнилась. Функция обратного вызова — это функция, которую передают другой функции для последующего вызова. readFile вызывает вашу функцию, когда файл готов. Сначала она передаёт ошибку, а затем текст файла.
readFile('greeting.txt', 'utf8', (err, text) => {
if (err) return;
console.log(text);
});Поместите работу, для которой нужен текст, внутрь этой функции. За её пределами текст ещё не получен. В стартовом коде уже есть импорт и ветка обработки ошибки; сосредоточьтесь на использовании успешно полученного результата.
Задание
ЛегкоСначала запусти practice.js. Возникает ошибка, потому что к моменту выполнения последней строки значение text ещё не определено: чтение файла не завершилось.
Перенеси работу, для которой нужен текст файла, туда, где чтение уже завершилось. Выведи содержимое в верхнем регистре, сохранив ветку обработки ошибки. Удали внешнюю переменную text, когда она больше не нужна. Если аргумент не указан, ожидается BUY MILK. Если указан other.txt, ожидается CALL ADA.
Попробуйте сами
import { readFile } from 'node:fs';
const file = process.argv[2] ?? 'note.txt';
let text;
readFile(file, 'utf8', (err, contents) => {
if (err) return;
text = contents;
});
console.log(text.toUpperCase());
Все уроки раздела Основы Node.js
1Запуск JavaScript в Node
Привет, NodeЧтение командыАргументы командной строкиКоманды4Асинхронность в Node
Использование результата callback-функцииКолбэкиРезультат PromiseКогда Promise завершается ошибкойПромисыОжидание значенияAsync и AwaitДва независимых чтенияPromise.allЦикл событийТаймерыПотренируйтесь самостоятельно: Песочница Express