우선 이 둘을 알기 전에 동기와 비동기의 차이를 알아야한다.
비동기는 코드가 끝날때 까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 것이고 동기는 요청을 보내고 응답을 받아야지 다음의 동작이 이루어지는 방식이다. 즉 어떠한 프로세스를 처리할 동안 나머지는 대기한다는 것이다.
async 와 await는 자바스크립트의 비동기 처리 패턴의 문법이다.
기본 문법은
async function 함수명() {
await 비동기처리메소드();
}
await는 async함수 안에서만 동작한다. await는 기다리라는 뜻의 의미인데 의미 그대로 기다리고 결화는 이후에 반환된다.
함수를 실행할 때 바덱 되는 인자값으로 문자, 숫자,배열, 객체 등 다양한 데이터를 받게 된다. 이런 인자값에 함수 자체를 받을 수 있는데 그것이 바로 callback 함수이다.
callback 함수를 사용하는 이유
function aaa(qqq){
// 외부 API에 데이터 요청하는 로직
// ...
// ...
// 요청 완료!
const result = "요청으로 받아온 데이터 결과값"
qqq(result) // 요청 끝나면 qqq 실행 시키기
}
aaa((result) => {
console.log("요청으로 끝났습니다.")
console.log("요청으로 받아온 데이터는 " + result + "입니다")
}) // : 2차적 처리를 위한 로직