promise객체를 사용하는 방법과 async await방법을 사용하는 방법의 차이
두 방법모두 js에서 비동기 처리를 수행하기 위해서 도입된 문법입니다. 하지만 async/await 문법은 Promise를 기반으로 하면서 비동기적인 작업을 보다 동기적으로 처리하기 위해서 ES2017에 도입된 문법입니다. async 함수 내부에서 await 키워드를 사용해서 비동기 작업이 완료될때까지 기다린 후 결과를 받아올 수 있습니다. 이를 통해서 비동기 처리를 좀더 직관적이고 동기적인 구조로 작성할 수 있습니다.
function fetchData() {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
setTimeout(() => {
const data = "Some data fetched from the server";
// 성공적으로 처리되면 resolve를 호출하여 결과값 전달
resolve(data);
// 에러 발생 시 reject를 호출하여 에러 전달
// reject(new Error('Error fetching data'));
}, 1000);
});
}
// Promise 사용
fetchData()
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
// 예시: async/await를 사용한 비동기 작업
async function fetchData() {
// 비동기 작업 수행
// 비동기 작업이 완료되면 결과를 반환
}
// async/await를 사용한 비동기 작업의 결과 처리
async function processData() {
try {
const result = await fetchData(); // 비동기 작업이 완료될 때까지 대기하고 결과를 받아옴
// 성공적인 결과 처리
} catch (error) {
// 오류 처리
}
}