Promise
란?Promise
는 비동기 작업의 완료 또는 실패를 나타내는 객체입니다.
비동기 코드의 실행 흐름을 더 쉽게 관리하고, 콜백 지옥(Callback Hell)을 방지하는 데 사용됩니다.
Promise
의 상태Promise
는 다음 세 가지 상태를 가집니다.
상태 | 설명 |
---|---|
대기(pending ) |
초기 상태, 아직 완료되지 않음 |
이행(fulfilled ) |
작업이 성공적으로 완료됨 |
거부(rejected ) |
작업이 실패함 |
Promise
생성 및 사용법new Promise()
생성자를 사용하여 비동기 작업을 감쌀 수 있습니다.resolve
와 reject
는 각각 성공과 실패를 나타내는 콜백 함수입니다.const promise = new Promise((resolve, reject) => {
setTimeout(() => {
const success = Math.random() > 0.5; // 랜덤 성공/실패
success ? resolve('작업 성공') : reject('작업 실패');
}, 1000);
});
promise
.then(result => console.log(result)) // 성공 시 실행
.catch(error => console.log(error)) // 실패 시 실행
.finally(() => console.log('완료')); // 항상 실행
Promise
체이닝 (Chaining)Promise
는 여러 개를 연결하여 비동기 작업을 순차적으로 실행할 수 있습니다.