[javascript] 프로미스의 상태와 상태 전이
  1. Pending(대기 중): 프로미스가 생성되었지만 아직 완료되지 않은 상태입니다. 비동기 작업이 진행 중이거나 아직 시작되지 않았을 때 이 상태가 됩니다.

  2. Fulfilled(이행됨): 비동기 작업이 성공적으로 완료되어 프로미스의 결과값이 사용 가능한 상태입니다. 이때 프로미스는 한 번 이행된 상태로 변경되며, 이후 추가적인 상태 전이는 일어나지 않습니다.

  3. Rejected(거부됨): 비동기 작업이 실패하거나 오류가 발생하여 프로미스가 거부된 상태입니다. 이때 프로미스는 한 번 거부된 상태로 변경되며, 이후 추가적인 상태 전이는 일어나지 않습니다.

프로미스의 상태 전이는 일반적으로 다음과 같은 방식으로 이루어집니다:

아래는 프로미스의 상태와 상태 전이 예제이며, 자바스크립트에서 프로미스를 사용할 때의 일반적인 패턴입니다.

// 비동기 작업을 수행하는 함수
function fetchData() {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행
    // 성공하면 resolve 호출하여 프로미스 이행
    // 실패하면 reject 호출하여 프로미스 거부
  });
}

// 프로미스 사용
fetchData()
  .then((data) => {
    // 프로미스가 이행됐을 때의 동작
  })
  .catch((error) => {
    // 프로미스가 거부됐을 때의 동작
  });

프로미스를 사용하여 비동기 작업을 처리할 때, 상태와 상태 전이에 대한 이해는 매우 중요합니다. 이를 통해 프로미스를 효율적으로 활용하여 코드의 가독성과 유지보수성을 높일 수 있습니다.

더 자세한 내용은 아래의 참고 자료를 참고해주세요.