Menu
CoddyTech

O resultado de uma Promise

Parte da seção Fundamentos de Node.js do Journey de Node.js da Coddy. Lição 19 de 33.

Uma promessa representa um resultado que chegará mais tarde. Diferentemente da versão com callback de node:fs, readFile de node:fs/promises não recebe callback e retorna uma promessa. Seu método .then aceita uma função que será chamada com o resultado quando a leitura for concluída com sucesso.

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

O parâmetro name contém o texto do arquivo, não uma promessa. O trabalho que depende do texto deve ser feito aqui. Por enquanto, o arquivo é fornecido e a leitura é concluída com sucesso. A próxima etapa tratará de uma leitura que falha.

challenge icon

Desafio

Fácil

Execute practice.js primeiro: ele imprime Note: [object Promise]. O programa está combinando o texto com a promise, em vez de seu resultado final.

Use um callback .then para imprimir a leitura concluída como Note: seguido pelo texto do arquivo. Sem argumento, ele lê note.txt, exibindo Note: Buy milk. Experimente other.txt: espere Note: Call Ada.

Experimente você mesmo

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

Todas as lições de Fundamentos de Node.js

Pratique por conta própria: Playground de Express