Dos lecturas independientes
Parte de la sección Conceptos básicos de Node.js del Journey de Node.js de Coddy. Lección 24 de 33.
Dos lecturas pueden comenzar al mismo tiempo cuando ninguna necesita el resultado de la otra. Promise.all recibe sus promesas y devuelve una promesa para una matriz de resultados. Espera esa matriz una sola vez.
const [name, city] = await Promise.all([
readFile('name.txt', 'utf8'),
readFile('city.txt', 'utf8'),
]);El primer resultado corresponde a la primera promesa, aunque la segunda lectura termine antes. Los corchetes asignan los dos resultados a variables separadas. Si alguna de las lecturas falla, la promesa combinada se rechaza. Usa esperas separadas cuando una operación necesite el resultado de la operación anterior.
El lector de práctica proporcionado rechaza una lectura que se espera antes de que haya comenzado la otra. Esto hace visible esperar demasiado pronto; no mide la velocidad de ejecución.
Desafío
FácilEste es un pequeño proyecto de práctica. Se proporciona la configuración; edita solo practice.js.
Lee note.txt y owner.txt con Promise.all. Usa los resultados para imprimir Ada: Buy milk. Mantén primero note en la matriz de entrada. «Ejecutar» ejecuta node practice.js.
Usa el lector importado. Inicia ambas lecturas antes de esperar; este lector de práctica rechaza deliberadamente las esperas secuenciales.
Usa los valores proporcionados noteFile y ownerFile. Ejecuta con other-note.txt other-owner.txt: se espera Bo: Walk.
Pruébalo tú mismo
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 las lecciones de Conceptos básicos de Node.js
Practica por tu cuenta: Playground de Express