Menu
CoddyTech

Результат Promise

Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 19 из 33.

Промис представляет результат, который будет получен позже. В отличие от варианта с обратным вызовом из node:fs, readFile из node:fs/promises не принимает обратный вызов и возвращает промис. Его метод .then принимает функцию, которую нужно вызвать с результатом, когда чтение завершится успешно.

import { readFile } from 'node:fs/promises';
readFile('name.txt', 'utf8').then((name) => {
    console.log('Hello, ' + name);
});

Параметр name содержит текст файла, а не промис. Здесь нужно размещать код, который зависит от этого текста. Пока что файл предоставлен, и чтение завершается успешно. На следующем шаге будет рассмотрена ситуация, когда чтение завершается ошибкой.

challenge icon

Задание

Легко

Сначала запусти practice.js: он выводит Note: [object Promise]. Программа объединяет текст с промисом, а не с результатом, который он вернёт.

Используй обратный вызов .then, чтобы вывести прочитанный файл в виде Note: , за которым следует текст файла. Если аргумент не указан, программа читает note.txt и выводит Note: Buy milk. Попробуй указать other.txt: ожидаемый результат — Note: Call Ada.

Попробуйте сами

import { readFile } from 'node:fs/promises';
const file = process.argv[2] ?? 'note.txt';
console.log('Note: ' + readFile(file, 'utf8'));

Все уроки раздела Основы Node.js

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