[javascript] Promise의 개념과 사용 방법

Promise는 자바스크립트에서 비동기 작업을 처리하는 방법 중 하나입니다. 비동기 작업은 웹 애플리케이션에서 네트워크 요청이나 파일 시스템 액세스와 같이 시간이 오래 걸리는 작업을 수행할 때 사용됩니다. 이 때 애플리케이션은 다른 작업을 수행하거나 기다리는 동안 블로킹되지 않도록 해야 합니다. Promise는 이러한 상황에서 유용하게 활용됩니다.

Promise의 개념

Promise는 세 가지 상태를 가집니다.

  1. 대기(pending): 이행할 수도 있고 거부될 수도 있는 초기 상태입니다.
  2. 이행(fulfilled): 연산이 성공적으로 완료됨을 의미합니다.
  3. 거부(rejected): 연산이 실패함을 의미합니다.

Promise는 비동기 작업을 수행한 후 결과를 알려주는 객체로, 성공 또는 실패와 같은 연산의 최종 결과를 나타낼 수 있습니다.

Promise의 사용 방법

Promise를 생성하려면 new Promise()를 사용합니다. 이 함수는 resolver와 rejecter를 인수로 받습니다. Resolver는 Promise 객체가 성공적으로 완료될 때 호출되는 함수이고, rejecter는 Promise 객체가 실패할 때 호출되는 함수입니다.

다음은 Promise를 사용하는 간단한 예제 코드입니다.

function fetchData(url) {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행
    if (작업이 성공) {
      resolve('데이터');
    } else {
      reject('에러 메시지');
    }
  });
}

fetchData('http://example.com/api/data')
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });

이 코드는 fetchData 함수를 호출하고, Promise가 이행될 때와 거부될 때 각각 다른 동작을 수행하도록 합니다.

Promise는 코드의 가독성을 높일 뿐만 아니라 비동기 작업을 보다 쉽게 다룰 수 있게 도와줍니다.

결론

Promise는 비동기 작업을 처리하고 완료 여부에 따라 적절한 동작을 취할 수 있도록 해주는 유용한 도구입니다. 이를 통해 더 효율적이고 읽기 쉬운 코드를 작성할 수 있고, 오류 처리에 대한 일관성을 유지할 수 있습니다.

참고 자료: MDN web docs