Колбэки
Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 14 из 24.
Чтение большого файла занимает время, а программа, которая ждёт его, тем временем ничего больше не делает.
fs.readFile(path, 'utf8', callback) начинает чтение и сразу возвращает управление. Когда файл загружен, Node вызывает вашу функцию обратного вызова с аргументом (err, text). При успехе err равен null, а в противном случае содержит ошибку, поэтому сначала проверьте его. Всё, для чего нужен текст, поместите внутрь функции обратного вызова.
import fs from 'node:fs';
fs.readFile('poem.txt', 'utf8', (err, text) => {
if (err) {
console.log('No poem today');
return;
}
console.log(text.split('\n').length + ' lines');
});
console.log('Asked for the poem');Asked for the poem выводится первым: строка после readFile выполняется, пока файл ещё загружается.
Задание
Легкоcount.jsпечатаетReading..., затем<n> notesиз обратного вызова, а затемDone, также из обратного вызова.- Если файл не удаётся прочитать, вместо количества печатается
Cannot read <file>.
Выполни node count.js, затем node count.js nothere.json.
Попробуйте сами
import fs from 'node:fs';
const file = process.argv[2] ?? 'notes.json';
console.log('Reading...');
// Прочитайте файл с помощью fs.readFile и функции обратного вызова.
// Выведите количество заметок, затем Done.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы Node.js
1Запуск JavaScript в Node
Знакомство с NodeАргументы командной строкиКоманды