프로미스(Promise)는 자바스크립트에서 비동기 작업을 다루는 데 유용한 객체입니다. 프로미스는 비동기 처리 결과를 나타내는 객체로, 작업이 성공적으로 완료되었는지 또는 실패했는지를 나타내는 상태 정보와 작업 결과 값을 제공합니다.
프로미스 객체 생성하기
프로미스 객체는 다음과 같이 new Promise()
를 사용하여 생성할 수 있습니다.
const myPromise = new Promise((resolve, reject) => {
// 비동기 작업 수행
const success = true;
if (success) {
resolve("성공한 경우 결과 값");
} else {
reject("실패한 경우 이유");
}
});
위의 예제에서 new Promise()
를 호출할 때, 함수 매개변수로 resolve
와 reject
를 받아와서 비동기 작업을 수행한 후 해당 작업의 성공 또는 실패에 따라 resolve
또는 reject
를 호출해야 합니다.
프로미스 체이닝
프로미스는 여러 개의 비동기 작업을 순차적이거나 병렬로 실행하고, 각 작업의 완료 여부에 따라 다음 작업을 연결하여 처리할 수 있습니다. 이를 프로미스 체이닝이라고 합니다.
myPromise
.then((result) => {
console.log("첫 번째 작업 성공:", result);
return "두 번째 작업 결과";
})
.then((result) => {
console.log("두 번째 작업 성공:", result);
})
.catch((error) => {
console.error("작업 실패:", error);
});
위의 예제에서 .then()
은 이전 작업이 성공했을 때 실행되는 콜백 함수를 등록하며, .catch()
는 어떤 위치에서든 발생할 수 있는 작업 실패에 대한 처리를 등록합니다.
프로미스의 활용
프로미스는 주로 HTTP 요청이나 파일 읽기와 같은 비동기 작업을 다룰 때 유용하게 활용됩니다. 또한, ES6부터는 async/await
구문을 통해 프로미스를 더 간편하게 다룰 수 있게 되었습니다.
프로미스는 비동기 코드의 가독성과 유지보수성을 높여주는 장점을 가지고 있으며, 특히 복잡한 비동기 작업을 보다 간편하게 다룰 수 있는 장점을 가지고 있습니다.
프로미스를 사용함으로써 비동기 코드의 처리를 보다 효율적으로 다룰 수 있게 되었습니다.
결론
프로미스는 자바스크립트 비동기 작업의 처리를 보다 직관적이고 효율적으로 다룰 수 있게 도와주는 객체입니다. 프로미스를 활용하면 비동기 작업을 보다 유지보수하기 쉽고 가독성이 뛰어난 코드로 작성할 수 있습니다.
참조: