개발/[React]
[Syntax] Async & await
바켱서
2020. 9. 10. 11:05
Async & Await
Promise 와 Callback 와 마찬가지로 자바스크립트 비동기 처리에 사용되는 객체이다.
Async & Await VS Promise
getDatas() 는 Promise 객체이다.
Promise
const datas= () => { getDatas() .then(datas => { console.log(users); return datas; }) .catch(error => { console.log(error); }); }
Async & Await
const datas = async() => { console.log(await getDatas()); return await getDatas(); }
둘의 차이점은 명확하다.
- 코드의 간결함이 남다르다.
- 자바와 같이 동기적 코드 흐름으로 개발이 가능하다.
- 가독성이 높아진다.
- try / catch로 에러를 핸들링할 수 있다.
- error가 어디서 발생했는지 알기 쉽다.
예외 처리 방법
async () => {
try {
let user = await fetchUser();
if (user.id === 1) {
let todo = await fetchTodo();
console.log(todo.title);
}
} catch (error) {
console.log(error);
}
}
주의할 점
비동기 처리 메서드가 꼭 Promise 객체를 반환해야 한다. 그렇게 해야 await가 의도한 대로 동작한다.