비동기와 동기는 원래 통신과 관련된 용어입니다.
프론트엔드에서 서버와 통신할 때 서버의 응답까지 처리시간이 얼마나 걸릴지,
우리가 데이터를 언제 받을 수 있을 지 알 수 없습니다.
따라서 비동기적인 작업을 해야할 경우가 생깁니다.
동기 이전 작업이 끝난 후, 다음 작업을 순차적으로 실행한다. 비동기 이전 작업 수행 중이어도, 다른 작업을 실행할 수 있다.
비동기 작업이 언제 끝나는지 알려주는 객체.
const promise = // Promise를 반환하는 작업
promise.then((result)=>{
console.log("작업 성공: "+result)
}).catch((err)=>{
console.log("작업실패: "+err)
})
해당 비동기 작업이 결과를 낼 때까지 기다린다.
const getData = async function(){
const {data : result} = /* 여기 멈춰! */ await axios.get("서버 주소");
return result;
}
// Promise 객체 반환
<div onClick = {
async()=> console.log(/* 기다리기 */await getData();)
}></div>