[javascript] Promise의 개념과 사용 방법
Promise는 자바스크립트에서 비동기 작업을 처리하는 방법 중 하나입니다. 비동기 작업은 웹 애플리케이션에서 네트워크 요청이나 파일 시스템 액세스와 같이 시간이 오래 걸리는 작업을 수행할 때 사용됩니다. 이 때 애플리케이션은 다른 작업을 수행하거나 기다리는 동안 블로킹되지 않도록 해야 합니다. Promise는 이러한 상황에서 유용하게 활용됩니다.
Promise의 개념
Promise는 세 가지 상태를 가집니다.
- 대기(pending): 이행할 수도 있고 거부될 수도 있는 초기 상태입니다.
- 이행(fulfilled): 연산이 성공적으로 완료됨을 의미합니다.
- 거부(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