Task 안에서 동작이 완료된 뒤 렌더링 직전에 동작하는 microtask 를 등록한다.
-----------=---------
console.log("마이크로태스크 추가 전");
queueMicrotask(() => {
console.log("마이크로태스크를 실행했습니다.");
});
console.log("마이크로태스크 추가 후");
=>
마이크로태스크 추가 전
마이크로태스크 추가 후
마이크로태스크를 실행했습니다. <---
=> 설명
다음의 간단한 예제에서는, 큐에 추가한 마이크로태스크의 콜백은 최상위 스크립트의 동작이 끝난 후 실행된다는 것을 보입니다.
이어지는 코드에서 queueMicrotask()를 사용해 실행할 마이크로태스크를 예약하는 것을 볼 수 있습니다. 앞뒤로는 log() 호출을 배치했는데, 화면에 텍스트를 출력하는 함수입니다.
-----------=----------
1. 하나의 Task 가 종료, 최상위 스크립트가 종료된 후 동작.
1.1. 보통 최상위 스크립트가 종료될 때 렌더링이 시작함. 즉, 보통 렌더링 직전에 microtask 를 실행함.
2. 등록하면 중복으로 여러번 호출 할 필요 없이 한번에 마지막에 호출된다.
3. 보통은 사용할 안한다네...
3.1. 프레임 워크 등에서 일관되게 처리해야하는 동작이 있을 때 사용하자. 성능과 사용성에서 뒤로 미뤄도 되는 경우에 사용하자.
움. 대충 정리했는데 잘 이해가 안되네
결론은
함수 호출이 최종 마지막으로 끝나면 그 때 post hook 처럼 동작함.
최외각 함수(A)안에 함수(B)안에 함수(C)를 호출하면 C에서 queueMicrotask()를 해도 C 종료후 B 종료후 A가 종료될 때 실행함.(execution context stack)