<aside> 💡 자바스크립트는 싱글 스레드 언어임
따라서 기본적으로 동기적으로 실행됨
문제: 실행이 오래걸리는 작업이 있으면 비효율적임
⇒ 반드시 비동기적으로 실행되는 코드가 필요함.
</aside>
function task1() {
console.log("task1")
}
function task2() {
console.log("task2")
}
task1()
task2()
<aside> 💡 몇번을 실행해도 1 -> 2 순서로 실행 동기적으로 실행되기 때문에 1의 실행기 끝나길 기다렸다가 2를 실행함
</aside>
function task1() {
setTimeout(() => {console.log("task1")}, 1000); // 비동기 처리를 맡기는 코드
// setTimeout에 코드 실행을 맡김
}
function task2() {
console.log("task2")
}
task1()
task2()
<aside> 💡 setTimeout에게 task1을 출력하는 작업을 맡기고 task2 실행함. 이 둘의 순서를 보장할 수 없음
</aside>
반드시 task1 → task2로 순차적으로 진행되어야 한다면??
<aside> 🔥 다른 함수의 매개변수로 전달되어 그 함수가 실행되는 동안 특정 시점에 호출되는 함수
</aside>