Menu
CoddyTech

Duas leituras independentes

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

Duas leituras podem começar ao mesmo tempo quando nenhuma precisa do resultado da outra. Promise.all recebe as promessas e retorna uma única promessa para um array de resultados. Aguarde esse array uma vez.

const [name, city] = await Promise.all([
    readFile('name.txt', 'utf8'),
    readFile('city.txt', 'utf8'),
]);

O primeiro resultado corresponde à primeira promessa, mesmo que a segunda leitura termine antes. Os colchetes atribuem os dois resultados a variáveis separadas. Se qualquer leitura falhar, a promessa combinada será rejeitada. Use awaits separados quando uma operação precisar do resultado anterior.

O leitor de prática fornecido recusa uma leitura aguardada antes de a outra ter começado. Isso torna visível a espera prematura; ele não mede a velocidade de execução.

challenge icon

Desafio

Fácil

Este é um pequeno projeto de prática. A configuração já está pronta; edite apenas practice.js.

Leia note.txt e owner.txt com Promise.all. Use os resultados para imprimir Ada: Buy milk. Mantenha note primeiro no array de entrada. “Executar” executa node practice.js.

Use o leitor importado. Inicie as duas leituras antes de esperar; este leitor de prática recusa deliberadamente esperas sequenciais.

Use os valores fornecidos noteFile e ownerFile. Execute com other-note.txt other-owner.txt: espere Bo: Walk.

Experimente você mesmo

import { readFile } from './reader.js';
const [noteFile = 'note.txt', ownerFile = 'owner.txt'] = process.argv.slice(2);
const note = '';
const owner = '';
console.log(owner + ': ' + note);

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

Pratique por conta própria: Playground de Express