[nodejs] Promise 기반 비동기 프로그래밍
이번에는 JavaScript에서 비동기 프로그래밍을 돕는 Promise
에 대해 알아보겠습니다. Promise
는 비동기 작업의 결과를 다루는 객체로, 콜백 지옥과 비교해 가독성이 좋고, 에러 핸들링이 쉽다는 장점을 갖고 있습니다.
Promise란?
Promise
는 JavaScript에서 비동기 처리를 위한 객체로, 비동기 작업이 완료되기 전에 프로미스화된 코드가 실행되며, 작업 완료 후에는 콜백 함수가 실행됩니다. 이를 통해 코드가 훨씬 더 읽기 쉽고 유지보수하기 쉬워집니다.
Promise 사용하기
다음은 Promise
를 사용한 예제 코드입니다.
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = 'Some fetched data';
if (data) {
resolve(data);
} else {
reject('Error fetching data');
}
}, 2000);
});
}
fetchData()
.then(data => {
console.log('Fetched data:', data);
})
.catch(error => {
console.error('Error:', error);
});
위 코드에서 fetchData
함수는 Promise
를 반환하며, 2초 후에 데이터를 반환하거나 에러를 발생시킵니다. fetchData
함수를 호출한 후 then
으로 성공 시의 동작과 catch
로 실패 시의 동작을 정의할 수 있습니다.
정리
Promise
를 사용하면 비동기 작업을 보다 효과적으로 다룰 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다. 프로미스를 사용하여 복잡한 비동기 작업을 처리하고, 더 나은 사용자 경험을 제공하세요.
더 많은 정보는 MDN web docs에서 찾아볼 수 있습니다.