본문 바로가기
STUDY/JavaScript

비동기 처리를 위한 Promise

by Y.Choi 2023. 11. 25.
728x90
반응형

Promise는 JavaScript에서 비동기 처리를 다루기 위한 객체다. 비동기 작업이 완료되었거나 실패했을 때의 결과 값을 나타내는데 사용된다. Promise는 비동기 코드를 좀 더 효율적으로 다룰 수 있게 하며, 콜백 헬(callback hell)을 피할 수 있도록 도와준다.

Promise는 일반적으로 세 가지 상태를 가지고 있다
1) Pending (대기): 비동기 작업이 완료되지 않은 상태. 초기 상태다.
2) Fulfilled (이행): 비동기 작업이 성공적으로 완료된 상태. 결과 값이 존재한다.
3) Rejected (거부): 비동기 작업이 실패한 상태. 실패 이유가 존재한다.

 

const myPromise = new Promise((resolve, reject) => {
  // 비동기 작업 수행
  const success = true; // 예제를 위한 가상의 성공 여부
  if (success) {
    resolve('Operation Successful'); // 작업이 성공하면 resolve 호출
  } else {
    reject('Operation Failed'); // 작업이 실패하면 reject 호출
  }
});

// Promise의 상태에 따라 처리
myPromise
  .then(result => {
    console.log(result); // Fulfilled 상태일 때 처리
  })
  .catch(error => {
    console.error(error); // Rejected 상태일 때 처리
  });

 

new Promise()를 통해 Promise 객체를 생성하고, 해당 객체 내부에서 비동기 작업을 수행한다. 작업이 성공하면 resolve를 호출하여 Promise를 Fulfilled 상태로 만들고, 작업이 실패하면 reject를 호출하여 Rejected 상태로 만든다.

 


Promise는 then과 catch 메서드를 사용하여 Fulfilled와 Rejected 상태에 대한 처리를 정의한다. 이를 통해 코드가 간결하게 작성될 수 있고, 여러 비동기 작업을 연결하여 사용할 수 있다.

 

Promise 체인을 좀 더 간결하게  async/await를 사용할 수 있다.

728x90
반응형