[React] Promise 객체 비동기 작업의 세 가지 상태

Posted by nkjok
2025. 2. 5. 12:25 낙서장[1]/1. React
반응형

자바스크립트에서 Promise 객체는 비동기 작업을 처리하는 데 유용한 객체입니다. Promise 객체는 비동기 작업의 성공 또는 실패를 나타내는 세 가지 상태를 가집니다. 각 상태에 대해 상세히 설명드릴게요.

1. 대기 상태 (Pending)

Promise 객체가 생성되고 나서 비동기 작업이 아직 완료되지 않은 상태입니다. 이 상태에서는 아직 결과값이 결정되지 않았으며, 성공 또는 실패가 확정되지 않은 상태입니다.

2. 이행 상태 (Fulfilled)

Promise 객체가 성공적으로 작업을 완료하여 결과값을 반환한 상태입니다. 이 상태에서는 then() 메서드의 첫 번째 콜백 함수가 실행되어 결과값을 처리합니다.

javascript
const promise = new Promise((resolve, reject) => {
    resolve('Success');
});

promise.then(value => {
    console.log(value); // "Success"
});

3. 거부 상태 (Rejected)

Promise 객체가 작업을 완료하지 못하고 오류를 반환한 상태입니다. 이 상태에서는 catch() 메서드의 콜백 함수가 실행되어 오류를 처리합니다.

javascript
const promise = new Promise((resolve, reject) => {
    reject('Error');
});

promise.catch(error => {
    console.log(error); // "Error"
});

상태 전이

Promise 객체는 상태가 한 번 정해지면 더 이상 다른 상태로 전이되지 않습니다. 즉, Pending 상태에서 Fulfilled 또는 Rejected 상태로만 전이될 수 있으며, 한 번 Fulfilled 또는 Rejected 상태로 전이되면 그 이후에는 상태가 변경되지 않습니다.

이러한 상태 관리를 통해 Promise는 비동기 작업의 성공 또는 실패를 효과적으로 처리할 수 있습니다.

반응형