[React] Promise 객체 비동기 작업의 세 가지 상태
반응형
자바스크립트에서 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는 비동기 작업의 성공 또는 실패를 효과적으로 처리할 수 있습니다.
반응형
'낙서장[1] > 1. React' 카테고리의 다른 글
[React] 리액트 JSX (0) | 2025.02.06 |
---|---|
[React] Axios Interceptor (0) | 2025.02.05 |
[React] 싱글플레이어 애플리케이션 단점 세션초기화 (1) | 2025.02.05 |
[React] 리덕스(Redux)는 JavaScript 애플리케이션의 상태(state) 관리를 위한 예측 가능한 상태 컨테이너 (0) | 2025.02.05 |
[React] 리액트(React)에서 훅(Hook) (0) | 2025.02.05 |