이벤트 루프
-
이벤트 루프란?Web/Node.js 2019. 9. 28. 01:10
다음 코드의 답을 예상해보자. 답은 이러하다. 왜 이런 답이 나오는지 코드를 따라가며 하나씩 살펴보자. 처음 호출은 console.log('시작') 이다. 호출 스택 즉 콜 스택 부분에 들어가게 된다. 이렇게 쌓인 console.log는 실행되고 지워지며 다음 setTimeout 줄으로 넘어가게 된다. 역시 setTimeout도 스택에 담기고 실행되고 지워지며 다음 줄로 넘어가게 된다. 이때 run 함수는 어딜로 가는 것일까? run 함수는 이벤트 루프에 의하여 테스크 큐에 저장 된다. 이후 console.log('끝')이 콜 스택에 담기고 실행되고 지워진다. 이제 콜 스택이 비워져있으면 이벤트 루프에 의하여 테스트 큐에 제일 앞에 있는 run 이 3초후에 실행되며 run() 안에 있던 console.l..