Day 24 · 2/5
🌱 기초 프론트엔드

Promise가 뭔가요?

쉽게 이해하기

택배를 주문하면 송장번호를 받죠. 택배가 당장 도착하진 않지만, 송장번호로 배송 상태를 확인하고 도착 시 물건을 받을 수 있어요. Promise도 마찬가지로, 작업이 완료되면 결과를 받을 수 있다는 '약속'을 나타냅니다.

핵심 정리

미래에 완료될 작업의 결과를 나타내는 JavaScript 객체예요.

자세히 알아보기

Promise는 비동기 작업의 최종 완료 또는 실패를 나타내는 객체예요. '약속'이라는 뜻 그대로, 지금 당장은 결과가 없지만 나중에 성공하거나 실패한 결과를 전달하겠다는 약속입니다. Promise는 세 가지 상태를 가져요. pending(대기 중), fulfilled(성공), rejected(실패)가 그것이죠. 서버에 데이터를 요청하면 처음엔 pending 상태이다가, 응답이 오면 fulfilled가 되고 .then()으로 결과를 받을 수 있어요. 에러가 발생하면 rejected가 되고 .catch()로 처리합니다. 실제로 fetch API를 사용하면 Promise 객체를 반환해요. 여러 개의 비동기 작업을 순서대로 실행하거나, 동시에 실행한 후 모두 완료될 때까지 기다리는 등의 패턴을 구현할 수 있습니다. Promise.all()을 사용하면 여러 API를 동시에 호출하고 모든 응답이 올 때까지 기다릴 수 있어요. Async/await는 사실 Promise를 더 쉽게 사용하기 위한 문법이에요. await 키워드는 Promise가 완료될 때까지 기다리는 역할을 합니다. 현대 웹 개발에서 Promise는 거의 모든 비동기 작업의 기반이 되는 핵심 개념입니다.