// 사용자의 데이터를 백엔드에서 받아오는 함수
function fetchUser(){
// do network request in 10 secs...
return 'ellie'
}
const user = fetchUser();
console.log(user)
자바스크립트 엔진은 동기적으로, 즉 위에서부터 순서대로 동기적으로 코드를 처리하기 때문에(한 줄 한 줄씩! 한줄이 끝나야지 그다음줄로 넘어가는) 위 코드에서 const user = fetchUser();
를 통해 호출한 fetchUser 함수가 실행을 끝낼 때 까지 다른 코드를 실행할 수 없다.
위 함수는 10초가 걸리는데, 10초동안 아무것도 못하고 락이 걸리게 되는 것이다. 10초가 지난 후에야 그제서야 다음줄로 넘어간다.
따라서 비동기적인 처리가 필요하다.