동기적 방식 : 현재 실행중인 코드가 끝나야 다음 코드를 실행하는 방식
promise 객체가 갖는 주요한 상태 정보 3가지에 따라 적절한 처리를 해주어야한다.
// http://api.naver.com/weather/today 로 요청을 한다고 가정.
axios.get('http://api.naver.com/weather/today')
.then(response => {
console.log('정상처리 되었습니다 : ' + response);
// 1. 정상적으로 처리 되었을 때
})
.catch(error => {
console.log('오류가 발생하였습니다 : ' + error);
//2. 오류가 발생했을 때
})
.finally(()=>{
console.log('항상 실행되는 부분입니다!');
// 3. 항상 실행되는 부분
});
// 정상적으로 실행되면 1, 3이 찍히고 오류가 발생했을 때는 2, 3이 찍힌다.
const getWeather = async () => {
try {
const response = await axios.get('http://api.naver.com/weather/today');
console.log('정상처리 되었습니다 : ' + response);
// 정상처리가 끝날 때까지 console에 찍히지않고 기다림
// await가 없으면 정상적으로 처리 되기 전에 console에 찍혀버림.
// await : axiot.get 줄이 끝날 때까지 기다렸다가 넘어간다.
} catch (error) {
console.log('오류가 발생하였습니다 : ' + error);
}
}
코드를 짤 때는 일의 순서가 중요하다.