JavaScript Promise

·2025년 7월 23일

용어 정리

목록 보기
8/8

Promise

Promise란

  • 비동기 작업을 관리하고, 해당 작업의 성공 또는 실패 결과를 나중에 사용할 수 있도록 하는 객체
  • 비동기 작업의 완료 여부를 약속해주는 개념

자바스크립트는 비동기 처리를 위한 콜백 함수를 많이 사용하나, 이에 따른 콜백 지옥을 야기할 수 있음. Promise는 이러한 비동기 처리의 가독성을 높이고 코드의 흐름을 명확하게 관리할 수 있도록 도와줌.

Promise의 상태

  • Pending
    • 비동기 작업이 아직 완료되지 않은 초기 상태
  • Fulfilled
    • 비동기 작업이 성공적으로 완료되어 값을 반환한 상태
  • Rejected
    • 비동기 작업이 실패하여 오류를 반환한 상태

Promise 객체는 비동기 작업을 수행할 함수를 인자로 받아서 실행 => 이 함수는 resolve(), reject() 두가지 콜백을 받음
resolve()는 비동기 작업이 성공했을 때 값을 전달하여 Promise를 fulfilled 상태로 전환, reject()는 비동기 작업이 실패했을 때 오류를 전달하여 Promise를 rejected 상태로 전환
Pending 상태에서 Fulfilled나 Rejected 상태로 전환되면, 이후에는 다른 상태로 전환되지 않으며, 그 결과 값을 통해 해당 작업의 성공 여부를 알 수 있다.

Promise는 코드의 가독성을 높이고, 비동기 작업의 흐름을 제어하는 데에 매우 유용

Promise의 단점

  • 복잡한 에러 처리
    • 여러 Promise가 중첩되거나 서로 다른 비동기 흐름에서 에러가 발생할 경우 복잡도 증가
  • 콜백 지옥 완전한 해결 불가
    • 비동기 작업이 복잡하게 중첩될 경우 가독성이 떨어짐. async/await을 통해 개선 가능
profile
웹 프론트엔드 개발자

0개의 댓글