자바스크립트에서 callback이란 나중에 실행할 인자(argument)로 다른 함수에게 전달되는 함수를 말한다. 나중에(back) 호출(call)할 함수라는 의미에서 callback이라고 한다.
function hello(callback){
callback();
}
function callback() {
console.log("hello world");
}
hello(callback); // hello world
const button = document.querySelector("button")
function handleClick(){
console.log("Click")
}
button.addEventListener("click", handleclick)
setTimeout(()=>{console.log("메시지")},2000)
callback 함수는 특정상황에서 함수가 동작하도록 하기 위해 사용한다. 쉽게 말하면 특정 이벤트가 발생했을 때, 자신이 원하는 함수를 실행하려고 사용한다. 여기서 더 나아가 비동기식으로 처리하고 싶을 때도 사용하게 된다. 자바스크립트는 기본적으로 동기식으로 동작을 하는데 콜백함수를 이용해 비동기식으로 처리를 할 수 있게 된다.
동기 : 순차적으로 동작
요청을 보낸 후 응답을 받고 다음 동작을 실행
비동기 : 비순차적으로 동작
요청을 보낸후 응답을 기다리지 않고 다른 동작을 실행