Menu
CoddyTech

서로 독립적인 두 번의 읽기

Coddy Node.js 여정의 Node.js 기초 섹션에 포함된 레슨. 33개 중 24번째.

서로의 결과가 필요하지 않은 두 읽기 작업은 함께 시작할 수 있습니다. Promise.all은 두 작업의 프로미스를 받아 결과 배열을 담은 하나의 프로미스를 반환합니다. 그 배열을 한 번만 기다리세요.

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

두 번째 읽기가 더 빨리 끝나더라도 첫 번째 결과는 첫 번째 프로미스에 해당합니다. 대괄호를 사용해 두 결과를 별개의 변수에 할당합니다. 어느 한 읽기 작업이 실패하면 결합된 프로미스도 거부됩니다. 한 작업에 앞선 작업의 결과가 필요한 경우에는 각각 따로 기다리세요.

제공된 연습용 리더는 다른 읽기 작업이 시작되기 전에 읽기 작업을 기다리면 이를 거부합니다. 이를 통해 너무 일찍 기다리는 상황을 확인할 수 있으며, 실행 속도를 측정하지는 않습니다.

challenge icon

챌린지

쉬움

이것은 간단한 연습 프로젝트입니다. 설정은 제공되어 있으므로 practice.js만 수정하세요.

note.txt와 owner.txt를 Promise.all로 읽으세요. 결과를 사용해 Ada: Buy milk를 출력하세요. 입력 배열에서 note를 먼저 유지하세요. 실행하면 node practice.js가 실행됩니다.

가져온 reader를 사용하세요. 기다리기 전에 두 읽기를 모두 시작하세요. 이 연습용 reader는 순차적인 await를 의도적으로 허용하지 않습니다.

제공된 noteFile 및 ownerFile 값을 사용하세요. other-note.txt other-owner.txt로 실행하면 Bo: Walk가 출력됩니다.

직접 해보기

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

Node.js 기초의 모든 레슨

직접 연습해 보세요: Express 플레이그라운드