Promise와 async/await

비동기 타입 흐름

TypeScript에서 async 함수는 반환값을 Promise로 감싸며, await는 그 안의 성공 타입을 꺼내 다음 줄의 타입 추론으로 넘깁니다.

async fn1
Promise<T>2
await3
T4
01

반환 타입 명시

async 함수의 공개 API는 Promise<Result>처럼 성공 타입을 명확히 적습니다.

02

await로 해제

await 이후 변수는 Promise가 아니라 내부 성공 타입으로 추론됩니다.

03

에러 경로 분리

try/catch 또는 Result 패턴으로 실패 흐름을 별도로 다룹니다.

04

병렬 처리

독립 작업은 Promise.all로 묶고 튜플 타입이 유지되는지 확인합니다.

타입 기준

  • async 함수에서 return T를 해도 호출자는 Promise<T>를 받습니다.
  • await 누락은 Promise 자체를 다음 함수에 넘기는 실수를 만들 수 있습니다.
  • Promise.all은 독립 작업에만 쓰고 순서 의존 작업에는 사용하지 않습니다.

표현 방식

Promise<T>미래 값
await값 꺼내기
try/catch실패 처리