Promise
는 다음 중 하나의 상태를 가집니다.
- 대기(pending): 이행하지도, 거부하지도 않은 초기 상태.
- 이행(fulfilled): 연산이 성공적으로 완료됨.
- 거부(rejected): 연산이 실패함.
사용법
new Promise
생성자를 사용하여 생성
resolve
와 reject
콜백 함수를 매개변수로 받음
const promise = new Promise((resolve, reject) => {
// 비동기 작업 수행
if (/* 성공 조건 */) {
resolve('Success');
} else {
reject('Error');
}
});
Promise
예제
function asyncTask() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const success = true; // 성공 또는 실패 조건
success ? resolve('Task completed') : reject('Task failed');
}, 1000);
});
}
asyncTask()
.then(result => console.log(result)) // Task completed
.catch(error => console.log(error)) // Task failed
.finally(() => console.log('Task ended')); // 항상 실행
설명
then
: 성공 시 실행
catch
: 실패 시 실행
finally
: 항상 실행