이벤트루프란, 단일 호출 스택인(싱글쓰레드) javascript에서 비동기 처리를 할 때 꼭 필요한 기능이다.
비동기 작업이 끝난 후, 콜백함수들을 보관하고있는 작업큐(Task Queue/Callback Queue/Event Queue 등으로 불린다)에서 콜스택으로 작업을 푸시 해주는 역할을 한다.
콜스택을 주시하고 있다가 콜스택이 비어있게 되면 작업큐에 대기하고있는 작업을 콜스택으로 푸시 해준다.
ES6를 지원하는 자바스크립트 런타임 환경에서는 작업큐에 Micro Task Queue라는 것이 추가 되었다.
ES6부터 공식적으로 지원하게 된 Promise도 대표적인 비동기 처리함수 인데,
바로 이 Promise의 콜백은, 기존의 setTimeout 등과는 달리 Micro Task Queue로 들어가게 된다.
Micro Task Queue 는 Task Queue 보다 우선적으로 처리되므로 Promise의 콜백이 setTimeout 보다 빨리 처리된다.
참고자료 :
https://www.youtube.com/watch?v=cCOL7MC4Pl0
이벤트 루프에 대한 좋은 글
Promise와 이벤트 루프에 대한 좋은 글
https://devlog.changhee.me/posts/Promise%EC%99%80-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EB%A3%A8%ED%94%84/
반응형
'Javascript' 카테고리의 다른 글
[ES6] 객체 복사 Deep Clone (0) | 2021.10.28 |
---|---|
[Javascript] Axios 메서드 사용방법 (0) | 2021.08.27 |
[Javascript] FormData에 파일 배열 사용하기 및 데이터 확인 (0) | 2021.08.24 |
[Javascript] 랜덤 숫자 추출 방법 (범위 지정) (0) | 2021.02.03 |
[Javascript] div 요소의 top(시작) 위치 알아내기 (0) | 2021.01.19 |