잘 알려진대로 Javacript는 단일 스레드 언어이지만 왜 비동기 조작을 사용할 수 있습니까? 비동기 작업은 멀티 스레드 및 다중 프로세스 기능이있는 브라우저에서 실행되기 때문입니다. JavaScript는 항상 단일 스레드에서 실행되며 비동기 코드가 내려 가면 실행을 위해 브라우저로 전달됩니다. 브라우저는 HTTP 요청, GUI, 이벤트 트리거 등을 포함하여 해당 스레드 또는 프로세스를 호출하여 이러한 비동기 작업을 처리합니다.
일반적으로 말하자면, Javasctip 작업은 Sync Task, Micro Task 및 Macro Task의 세 가지 범주로 나눌 수 있으며 Sync-> micro-> 매크로 순서대로 실행됩니다. 동기화 코드는 먼저 실행되면 브라우저는 마이크로 코드를 동기화 작업을 위해 마이크로 작업 큐에 넣고 마이크로 코드를 마이크로 코드 큐에 넣을 수 있습니다.
Common Micro Task : Promise.then (), promise.catch (), new MutationObserver (), process.nexttick ()
그건 그렇고, process.nexttick ()는 마이크로 작업이나 매크로 작업이 아니며 동기화 코드 이후와 마이크로 작업 전에 실행됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3