• 0
  • 2
January 14, 2025

Promise의 resolve와 fulfilled의 차이점

답변 확인

1. 차이점 요약

  • resolve:

    • Promise를 성공적으로 이행(fulfilled) 상태로 전환시키는 함수
    • 비동기 작업이 성공적으로 완료되었음을 알리고 결과를 전달함
  • fulfilled:

    • Promise의 상태 중 하나로, 비동기 작업이 성공적으로 완료된 상태를 의미
    • resolve가 호출되어야 Promise는 fulfilled 상태가 됨

2. 동작 원리

  1. resolve 호출:
    • 비동기 작업이 성공적으로 끝나면 resolve 함수가 호출됨
    • 이 함수는 결과 값을 Promise로 전달하고, 상태를 fulfilled로 전환함
  2. 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) 상태로 전환됩니다.
  • Q : thencatch의 역할은 무엇인가요?

    • A :
      • then: resolve된 값을 처리하는 메서드.
      • catch: reject된 오류를 처리하는 메서드.

7. 결론

  • resolve는 Promise를 성공적으로 마무리 짓는 함수이고,
  • fulfilled는 그 결과로 발생하는 완료된 상태
  • 둘의 관계는 "행위(호출)"와 "결과(상태)"

참고

Top comments (2)

  • DavidYang2월 19일

    우와 댓글이다~

  • Olivia2월 19일

    오오 ~~ :) 너무 글 좋네용