Menu
CoddyTech

Aguardando um valor

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

Uma expressão await permite escrever a próxima etapa depois da leitura, em vez de dentro de um callback de then. Ela aguarda essa promise e fornece o resultado. Outras tarefas ainda podem ser executadas enquanto a leitura aguarda.

const text = await readFile('name.txt', 'utf8');
console.log(text.toUpperCase());

Sem await, text conteria a promise, que não tem métodos de string. Esses arquivos são módulos, então await é permitido fora de uma função. Dentro de uma função, marque a função como async. Uma função async também retorna uma promise para quem a chamou.

challenge icon

Desafio

Fácil

Execute practice.js primeiro. O erro diz text.toUpperCase is not a function: text contém uma promessa, não o texto do arquivo.

Faça text conter a leitura concluída antes de o programa usá-lo. Mantenha a função assíncrona de arquivo. Execute novamente: a saída é BUY MILK.

Execute com o argumento other.txt: o segundo arquivo fornecido deve imprimir CALL ADA. Mantenha a expressão do nome de arquivo fornecido.

Experimente você mesmo

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

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

Pratique por conta própria: Playground de Express