개요

Promise를 값으로 다루고 반복자 패턴과 조합하여 비동기 실행 순서를 제어하는 방법

비동기와 동시성 제어에 강점을 보이는 함수형 패러다임과 타입 시스템을 적용

4.1 값으로 다루는 비동기

4.1.1 Promise

Promise는 비동기 작업의 결과를 값으로 다룰 수 있도록 하는 객체 또는 규약이다.

리스트 프로세싱과 함께 사용하면 복잡한 비동기 로직을 손쉽고 안전하게 제어할 수 있다.

4.1.2 new Promise()를 직접 사용해본 적 있는가

new Promise를 직접 사용해본다는 것은 비동기 제어에 대한 이해와 문제 해결 능력을 높일 수 있다는 뜻이다.

4.1.3 Promise.race

병렬로 실행된 여러 Promise 중 가장 먼저 완료된 Promise의 결과나 에러를 반환하는 함수

const promise1 = new Promise((resolve) => setTimeout(resolve, 500, 'one'))
const promise2 = new Promise((resolve) => setTimeout(resolve, 100, 'two'))

await Promise.race([promise1, promise2]).then(res => {
	console.log(res) // two가 출력.
})