티스토리 뷰
자바스크립트는 싱글 쓰레드를 기반으로 한다
따라서 원래라면 하나의 일을 처리한 후 다음 일을 처리할 수 있다
하지만 브라우저가 제공하는 WebAPI를 통해 자바스크립크에 효과적으로 스레드를 지원한다
console.log( ' hi ' );
setTimeout ( function cd( ) {
console.log( ' there ' );
} , 5000 );
console.log( ' JS ' )
//console
hi
JS
there
console.log( ' hi ' ); 와 console.log( ' JS ' ) 는 stack에 쌓이고 바로 실행이 되지만 setTimeout 은 WebAPI에 넘겨진다
그 후 5초가 흐른 후 task queue로 넘어간다
이 때 stack이 비어 있으면 event loop는 queue에 있는 작업을 stack으로 넘긴다
따라서 setTimeout에 시간을 0으로 설정을 하면 WebAPI -> task queue -> stack에 있는 작업들이 종료 후 실행이 되기 때문에
stack에 쌓여있는 작업에 따라 딜레이가 생길 수 있다.
참고 : https://www.youtube.com/embed/8aGhZQkoFbQ
반응형
'JavaScript' 카테고리의 다른 글
es6문법 비구조화 할당 (0) | 2019.03.07 |
---|---|
es6 문법 const let var (0) | 2019.03.07 |
JS prototype /create (0) | 2019.02.14 |
Debug (0) | 2018.10.24 |
arr 메소드 (0) | 2018.10.22 |
댓글
공지사항