[JavaScript] Promise

Jiseong·2023년 7월 23일
0

javascript

목록 보기
1/2

Promise

Promise 패턴은 JavaScript 코드를 다루는 방법 중 하나로, 주로 콜백 지옥(callback hell)을 피하고 가독성을 높이기 위해 사용한다. Promise 패턴을 사용하면 비동기적으로 처리되는 작업을 보다 간결하고 직관적으로 표현할 수 있다.

Promise 동작 방식

1. Promise 객체 생성

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    /* 비동기 작업 수행 */
    
    if (/* 비동기 작업이 성공적으로 완료된 경우 */) {
      resolve(result); 
    } else { 
      reject(error);
    }
  }, 1000);
})

new 키워드를 통해 Promise 객체를 생성할 수 있다.
비동기 작업을 수행할 함수가 전달된다. 이 함수의 인자로는 resolve, reject 콜백 함수가 전달된다.

resolve 함수는 비동기 작업이 정상적으로 수행 되었을 때 실행하는 함수이다.
reject 비동기 작업이 실패하면 reject 함수를 호출하여 Promise를 거부한다.

2. 비동기 함수 실행

Promise 객체를 사용하면 비동기 함수가 실행된다.
resolve 함수에는 비동기 작업의 결과 값이나 완료 상태를 전달하며, reject 함수에는 에러 정보를 전달한다.

3. 체이닝

myPromise
  .then((result) => {
    console.log("Resolved:", result); // 성공적으로 완료되면 이곳이 실행됨
  })
  .catch((error) => {
    console.error("Rejected:", error); // 실패하면 이곳이 실행됨
  });

resolve()가 실행되었다면 then 구문, reject()가 실행되었다면 catch 구문이 실행된다.

Promise의 상태

Promise는 다음 중 하나의 상태를 가진다.

  • 대기(pending): 이행하지도, 거부하지도 않은 초기 상태.
  • 이행(fulfilled): 연산이 성공적으로 완료됨.
  • 거부(rejected): 연산이 실패함.

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 글 감사합니다.

답글 달기