에러 핸들링 기능 여부와 코드의 기독성에서 차이가 있습니다.
Promise는 비동기 로직 처리용 객체이며
then, catch 메서드를 활용하여 에러 핸들링이 가능합니다.
Async / Await는 비동기 로직 처리용 키워드이며
try-catch 문을 활용해 에러를 핸들링해야합니다.
Promise보다 Async / Await가 동기적인 로직처럼 직관적인 코드입니다.
EX)
//promise
// http://api.naver.com/weather/today 로 요청을 한다고 가정합시다.
axios.get('http://api.naver.com/weather/today')
.then(response => {
console.log('정상처리 되었습니다 : ' + response);
})
.catch(error => {
console.log('오류가 발생하였습니다 : ' + error);
})
.finally(()=>{
console.log('항상 실행되는 부분입니다!');
});
//async await
const getWeather = async () => {
try {
const response = axios.get('http://api.naver.com/weather/today');
console.log('정상처리 되었습니다 : ' + response);
} catch (error) {
console.log('오류가 발생하였습니다 : ' + error);
}
}