Programming

[TIL] Promise 객체

jay-dev 2023. 9. 28. 21:48

Promise

Promise 객체는 JavaScript에서 비동기 연산이 완료될 때까지 기다리지 않고, 그 연산이 완료된 후에 어떤 동작을 실행할지를 정의할 수 있게 해주는 객체입니다. Promise 객체는 비동기 작업의 최종 완료(또는 실패)와 그 결과 값을 나타냅니다.


상태

Promise 객체는 3가지 상태를 가질 수 있습니다.

Pending(대기 중): 초기 상태, 이행 또는 거부되지 않음.
Fulfilled(이행): 연산이 성공적으로 완료됨.
Rejected(거부): 연산이 실패함.


메서드

Promise 객체는 주로 다음과 같은 메서드를 사용합니다.

then(): Promise가 이행될 때 호출할 함수를 등록합니다.
catch(): Promise가 거부될 때 호출할 함수를 등록합니다.
finally(): Promise가 이행되거나 거부될 때 호출할 함수를 등록합니다.


다음은 Promise의 간단한 예시입니다.

const promise = new Promise((resolve, reject) => {
  const success = true;
  if(success) {
    resolve('작업이 성공적으로 완료되었습니다.');
  } else {
    reject('작업이 실패하였습니다.');
  }
});

promise
  .then((message) => {
    console.log(message); // '작업이 성공적으로 완료되었습니다.'
  })
  .catch((message) => {
    console.error(message);
  });


연결(Chaining)

Promise의 메서드들은 새로운 Promise 객체를 반환하므로, 여러 개의 then, catch, finally를 연결하여 사용할 수 있습니다. 이를 통해 비동기 작업의 결과를 쉽게 체이닝할 수 있습니다.

따라서, Promise 객체는 비동기 작업을 더 효과적이고 깔끔하게 처리할 수 있게 해주며, 비동기 로직을 순차적이고 이해하기 쉬운 방식으로 구성할 수 있게 도와줍니다.

'Programming' 카테고리의 다른 글

[TIL] useEffect  (1) 2023.09.30
[TIL] Event Loop  (0) 2023.09.28
[회고] 항해99 부트캠프 후기  (5) 2023.09.18
[WIL] 행동대장 프로젝트 5주차 회고  (0) 2023.09.17
[TIL] React Compound Components Pattern (design pettern)  (1) 2023.09.14