JS CallBack Call Stack vs Callback Queue

욱2·2023년 4월 10일
0

JS

목록 보기
2/14

NodeJs 입문전 JS의 Callback 을 알아보았다.

사실 콜백에 대한 좋은 자료는 너무 많다.

콜백은 function을 통해 function을 호출. Linking funcion with function

  1. 스택에 setTimeout은 호출되면 WebAPIs로 이동하게 된다. 그리고 1이 들어고 LIFO를 정상적으로 해준다.

  2. 4초 지정된 setTimeout은 4초후 Task Queue로 이동한다. FIFO

  3. EVENT LOOP 의 도움을 통해 모든 스택이 끝나고 다시 스택에 들어가 실행하게된다.


궁금증

  • 그렇다면 스택에 큰 데이터를 호출하는 api 선언 후, 끊이 없이 스택이 다른 행위로 인해 실행 쌓이게 된다면, task queue에서 준비가 완료된 데이터는 어떻게 되는건가? 준비가 된 친구들만 빼오는 인터페이스가 따로 있을까?

해결

  • 유툽+매니저님을 통해 필요한것만 queue에서 가져올수 없으며 stack이 비어야할때 까지 기다리게 된다고 한다. 그래서 처음부터 개발자들이 await 을 통행 실행 시키는 방식이 있다고 한다. 뭔가 아쉽지만 대안 있어서 잘 활용하면 큰 문제는 없을것 같다.

궁금증 해결 확인

  • setTimeout을 계속 뽑았다. 확실히 callback queue에서 eventLoop을 통해 스택으로 이동 후 실행 했을때 속도, 거기서 pop할때까지 기다리는 시간등 다양한 요인으로 인해 task queue에 setTimeout 이 쌓였고 결구 5초뒤에 실행되야하는 함수들이 9초까지 연장되는것을 볼수있었다.
profile
성장하는 날 위한 기록

0개의 댓글

관련 채용 정보