이벤트 루프
시각적 표현
스택
스택은 후입선출(LIFO) 원칙을 따르는 데이터 구조입니다. 즉, 스택 내부에 삽입된 마지막 요소가 먼저 제거되고 js에서 호출된 모든 함수가 스택으로 푸시되고 완료되면 팝됩니다. 스택에서.
const last = ()=>{
console.log("last")
}
const first = ()=>{
last()
console.log("first")
}
first()
/*
last
first
*/
더미
객체는 큰(대부분 구조화되지 않은) 메모리 영역을 나타내는 이름에 불과한 힙에 할당됩니다.
이벤트 루프
이벤트 루프는 큐에 이벤트를 넣고 스택이 비워질 때까지 기다린 다음 이벤트 핸들러를 스택으로 푸시하여 실행하는 루프처럼 들립니다.
const foo = ()=>{
console.log("first")
}
setTimeout(()=>{
console.log("second")
},0)
foo()
/*
first
second
*/
setTimeout은 콜백을 실행하기 위한 최소 지연 시간(정확하지 않음)이 있는 webApi입니다. 이 예제에서 이벤트 루프는 setTimeout을 큐에 넣고 foo 함수를 호출 스택에 넣습니다. 함수 foo가 실행되면 스택이 비게 되고 이벤트 루프는 setTimeout 콜백을 호출 스택으로 푸시합니다.
결론
이벤트 루프 모델은 javascript가 단일 스레드 언어임에도 불구하고 비차단 방식으로 I/O와 같은 많은 작업을 처리할 수 있는 가능성을 제공합니다.
Reference
이 문제에 관하여(이벤트 루프), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/karamkoujan/the-event-loop-46dj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)