- 0
- 2
Promise의 resolve와 fulfilled의 차이점
답변 확인
1. 차이점 요약
-
resolve:- Promise를 성공적으로 이행
(fulfilled)상태로 전환시키는 함수 - 비동기 작업이 성공적으로 완료되었음을 알리고 결과를 전달함
- Promise를 성공적으로 이행
-
fulfilled:- Promise의 상태 중 하나로, 비동기 작업이 성공적으로 완료된 상태를 의미
resolve가 호출되어야 Promise는fulfilled상태가 됨
2. 동작 원리
resolve호출:- 비동기 작업이 성공적으로 끝나면
resolve함수가 호출됨 - 이 함수는 결과 값을 Promise로 전달하고, 상태를
fulfilled로 전환함
- 비동기 작업이 성공적으로 끝나면
fulfilled상태:resolve가 호출된 이후의 상태를 말하며, Promise가 작업을 성공적으로 완료했음을 나타냄- 이 상태가 되면
.then메서드에서 결과 값을 처리할 수 있음
3. 예제
const promise = new Promise((resolve, reject) => {
// 비동기 작업 성공 시
resolve('작업 완료!'); // resolve 호출 -> Promise 상태가 fulfilled로 전환
});
promise.then((result) => {
console.log(result); // "작업 완료!"
});4. 주요 차이점
| 구분 | resolve |
fulfilled |
|---|---|---|
| 정의 | Promise를 성공적으로 이행 상태로 전환시키는 함수 | Promise의 상태 중 하나로, 작업이 성공적으로 완료된 상태 |
| 역할 | 작업 완료를 알리고 결과 값을 전달 | 작업이 완료되었음을 나타내며 .then 메서드를 실행 가능 |
| 행위/상태 | resolve는 Promise를 완료하는 행위 |
fulfilled는 Promise가 완료된 상태 |
| 호출 주체 | Promise 내부에서 개발자가 직접 호출 | resolve 호출에 의해 Promise의 상태가 전환된 결과 |
5. 실생활 비유
-
resolve: 택배를 배달원이 성공적으로 전달하며 "물건이 도착했습니다!"라고 알리는 행위 -
fulfilled: 물건이 실제로 도착한 상태
6. 추가 QA
-
Q :
resolve에서 작업이 실패할 수 있나요?- A :
resolve는 Promise를 성공적으로 완료하는 역할만 합니다.- 실패가 발생하면
resolve대신reject를 호출해야 하며, 이때 Promise는 거부(rejected)상태로 전환됩니다.
- A :
-
Q :
then과catch의 역할은 무엇인가요?- A :
then:resolve된 값을 처리하는 메서드.catch:reject된 오류를 처리하는 메서드.
- A :
7. 결론
- resolve는 Promise를 성공적으로 마무리 짓는 함수이고,
- fulfilled는 그 결과로 발생하는 완료된 상태
- 둘의 관계는 "행위(호출)"와 "결과(상태)"
참고
Top comments (2)
- DavidYang2월 19일
우와 댓글이다~
- Olivia2월 19일
오오 ~~ :) 너무 글 좋네용