이벤트 루프

홍석현·2023년 6월 1일
2

CS

목록 보기
5/6

이벤트루프는 이벤트가 실행되는 일련의 과정이라고 보면 쉽습니다.

구성요소는
1. 호출 스택
2. 백그라운드
3. 태스크 큐

가 있다고 보면 될것같습니다.

이벤트 루프의 구조:

이벤트 루프: 이벤트 발생시 호출할 콜백 함수들을 관리하고 호출할 순서를 결정합니다.(setTimeout)

태스크 큐: 이벤트 발생후 호출되어야 할 콜백 함수들이 순서대로 기다리는 곳

백그라운드: 타이머 I/O 작업 콜백 이벤트 리스너들이 대기하는곳, 여러개의 작업이 동시에 실행될 수 있습니다.

setTimeout(함수, 시간(5초))이 실행되면 콜백함수로 지정된 함수는 백그라운드로 가서 대기합니다.

5초 후에 함수가 태스크 큐로 이동하여 자신의 차례를 기다립니다.

호출 스택이 비워지면 이벤트 루프가 태스크 큐에서 대기하던 콜백함수 들을 호출 스택으로 부릅니다.

이때 호출스택이 완전히 비워져야만 호출하기 때문에 만약 호출스텍에 먼저 돌아가던 함수들이 시간이 오래걸린다면 setTimeout이 시간을 제대로 맞추지 못할 수 있다.

태스크 큐에 대기하던 함수를 중 프로미스가 있다면 프로미스가 자기주장을 펼칩니다.

먼저 대기하던 콜백함수를 제치고 프로미스가 호출스택으로 들어가서 콘솔에 노출되게 됩니다.

profile
Front-end to Full-stack

0개의 댓글