호출자와 피호출자의 제어권과 관련
제어권: 코드의 실행 순서를 제어하는 권리로 제어권을 가진 함수는 코드 실행 후 자신을 호출한 함수로 이동한다.
블로킹 함수
논블로킹 함수
블로킹
논블로킹
제어권이 없는 함수가 어떻게 실행될 수 있을까?
이벤트 루프, 태스크 큐를 사용!
비동기 함수의 콜백함수는 태스크 큐에 푸시되어 기다리다가 콜 스택이 비어있으면 이벤트 루프에 의해 다시 콜 스택에 푸시되어 실행한다.