프로미스(Promise)는 자바스크립트에서 비동기 작업을 다룰 때 많이 사용되는 패턴입니다. 비동기 작업이 성공적으로 완료되었거나 실패했을 때, 프로미스는 해당 결과를 처리하는 방법을 제공합니다. 에러 처리는 프로미스를 사용하는 중요한 부분 중 하나입니다. 이 글에서는 프로미스의 에러 처리 방법에 대해 알아보겠습니다.
프로미스에서 에러 발생시키기
프로미스 체인 내에서 에러를 발생시키려면 throw
키워드를 사용합니다. 예를 들어, 다음과 같은 프로미스 체인이 있다고 가정해봅시다.
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error("데이터를 가져오는데 실패했습니다."));
}, 2000);
});
}
fetchData()
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
fetchData
함수는 2초 후에 데이터를 가져오는 비동기 작업을 수행합니다. 하지만 이 작업이 실패할 시, Error
객체를 생성하여 reject
함수에 넘겨줌으로써 에러를 발생시킵니다. 이렇게 발생한 에러는 .catch
메소드를 통해 제대로 처리됩니다.
프로미스에서 에러 처리하기
프로미스에서 발생한 에러는 .catch
메소드를 이용해 처리할 수 있습니다. .catch
메소드는 해당 프로미스나 이전 .then
메소드에서 발생한 에러를 처리합니다. 만약 프로미스 체인 내에서 여러 에러를 처리해야 한다면, 추가적인 .catch
메소드를 연이어 호출해 사용할 수 있습니다. 예를 들어, 다음과 같이 프로미스에서의 에러 처리를 구현할 수 있습니다.
fetchData()
.then(data => {
console.log(data);
})
.catch(error => {
console.error("데이터를 가져오는 도중 에러가 발생했습니다:", error);
})
위 예제처럼 .catch
메소드를 사용하여 프로미스에서 발생한 에러를 캐치하고 적절한 동작을 수행할 수 있습니다.
요약
프로미스에서 에러 처리는 비동기 작업을 안전하게 다루는 중요한 부분입니다. 에러를 발생시키고 캐치하는 방법을 이해하고 적절하게 처리하는 것이 중요합니다. 프로미스 체인 내에서 에러가 발생할 수 있는 경우, .catch
메소드를 이용하여 에러를 쉽게 처리할 수 있습니다.
이외에도 다양한 방법으로 프로미스의 에러 처리를 다룰 수 있습니다. 프로미스에 대한 더 자세한 내용은 MDN 문서를 참고하시기 바랍니다.