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.
Desafio
FácilExecute 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