- 비동기를 사용할때 통상 setTimeout을 사용하는데, 이 메소드는 스택이 비어있을 때까지 기다리게 하고 스택이 비었을 때 해당 메소드 내에 콜백함수의 결과를 반환하도록 하는 기능이다.
- event loop를 막지 말라는 것은 스택에 필요없는 느린 코드를 쌓아서 브라우저가 할 일을 못하게 만들지 말라는 것이다. 즉, 유동적인 UI를 만들라는 뜻이다
Event loop 의 메커니즘은 다음 캡쳐사진들과 같다.




- setTimeout 이 스택에 들어가면 비동기 실행이 되어 콜백함수의 결과값이 task queue에 대기하고 있다가 stack이 빈 순간에 stack으로 이동하여 반환된다.

- setTimeout은 스택에서 나오고 그 다음 코드인 console.log(’JSConfEU’) 가 스택으로 들어간다.


모든 코드와 완료되어 stack이 비게 되면 timer가 다 지난 콜백함수의 결과값이 queue에서 대기하고 있다가 stack으로 이동한다.

