
Promise는 비동기 작업을 처리하기 위한 객체로, 주로 비동기 작업의 결과를 처리하기 위해 사용
let promise = new Promise((resolve, reject) => {
// 비동기 작업 수행
setTimeout(() => {
resolve("작업 성공!");
// reject("작업 실패!"); // 실패 시
}, 1000);
});
promise
.then(result => {
console.log(result); // "작업 성공!" 출력
})
.catch(error => {
console.error(error); // "작업 실패!" 출력
});
async/await는 Promise를 사용한 비동기 작업을 더 간결하고 가독성 좋게 작성할 수 있게 해주는 ES8 문법
⭐️ async 키워드는 함수가 Promise를 반환한다는 것을 명시하며, await 키워드는 Promise가 이행될 때까지 함수의 실행을 일시 정지시킨다.
async function fetchData() {
try {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
console.log(data);
} catch (error) {
console.error('에러 발생:', error);
}
}
fetchData();
Promise를 이용한 코드
function getData() {
return fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error('에러 발생:', error);
});
}
getData();
async/await로 변환한 코드
async function getData() {
try {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
console.log(data);
} catch (error) {
console.error('에러 발생:', error);
}
}
getData();
Promise는 복잡한 비동기 작업을 단계적으로 처리할 때 유용하고, async/await는 더 직관적이고 간결한 코드를 작성할 때 유리하다