파라미터로 함수를 전달하는 함수
ex)
function aaa(callback) {
callback();
}
function callback() {
console.log("bbb");
}
aaa(callback); // bbb
- 동기적 함수
- 비동기적 함수
동기(synchronous)적 방식 : 현재 실행 중인 코드가 완료된 후 다음 코드를 실행
비동기(asynchronous)적 방식: 현재 실행중인 코드의 완료 여부와 무관하게 즉시 다음 코드로 넘어가서 실행.
자바스크립트는 Single-Thread / Non-Blocking 방식으로 코드를 실행
합니다. (Single-Thread, Non-Blocking에 대해서는 여기서 자세하게 다루지 않습니다. 해당 개념은 Event-Loop도 함께 들어갑니다. )
간단하게 이야기 하면, 자바스크립트는 한 번에 하나의 코드만 실행할 수 있습니다. (Single-Thread) 하지만 코드를 실행하고 해당 결과를 기다리지 않고 다음 코드를 실행합니다. (Non-Blocking)
Javascript의 모든 이벤트는 한 번에 한 가지 일만 처리한다. 이런 방법은 작업을 요청한 이후에 그 작업이 끝날 때까지 다음 작업은 진행할 수 없다. 그리고 만약 통신 과정이 포함되어 있고 데이터를 보낸 이후에 답이 없다면 멈추는 현상이 발생한다. 이러한 방법을 동기식 프로그래밍 방법. 현재는 모든 이벤트를 다 실행하고 결과를 받는 순서대로 다음을 처리하는 비동기식 프로그래밍을 사용하고 있다. 비동기식 프로그램 때문에 나온 함수가 콜백함수