Javascript

콜백함수

농담농담 2022. 8. 23. 01:07

자바스크립트는 보통 프로그래밍 언어들과 생각하는 방식자체가 다르다. 

print(1)
time.sleep(1)
print(2)

파이썬의 경우 위의 코드를 이용하여 1초쉬고 출력이 가능하다.

console.log(1);
setTimeout(function(){}, 1000);
console.log(2);

하지만 자바스크립트는 중간에 저 코드가 있어도 stack 에서 WEB API로 보내기 때문에 1과 2가 동시에 출력된다.

자바스크립트에서 순차적으로 실행하기 위해서는 콜백함수를 쓰면 된다.

console.log(1);
setTimeout(function(){console.log(2);}, 5000)

콜백함수는 그저 함수안에 함수를 쓰는 것 뿐이다.

function 첫째함수(콜백){
  console.log(1);
  콜백();
}

function 둘째함수(){
  console.log(2)
}

첫째함수(둘째함수);