window.requestAnimationFrame은 스레딩을 수행합니까? [복제]
Sep 01 2020
window.requestAnimationFrame함수가 호출 된 위치와 함수 자체가 병렬로 실행되도록하는 새 스레드를 생성 합니까 ? 다음 코드가 왜 스택 오버플로가 발생하는지 이해하지 못하기 때문에.
window.requestAnimationFrame전화 main및 main전화 window.requestAnimationFrame등등 ...
w.rAF-> main-> w.rAF-> main-> w.rAF. . .
main.js
function main(currentTime){
window.requestAnimationFrame(main);
console.log(currentTime);
}
window.requestAnimationFrame(main);
index.html
<script src="main.js"></script>
답변
1 Snuffels11 Sep 01 2020 at 13:09
requestAnimationFrame다음 프레임이 렌더링되기 전에 함수를 실행하도록 브라우저에 지시합니다. requestAnimationFramemain에서 다시 호출 하면 다음 (현재가 아닌) animationFrame의 대기열에 해당 함수가 배치됩니다.
Javascript에서는 작업자 만 스레드됩니다.
requestAnimationFrame이벤트 루프의 특정 지점에서 코드를 실행하는 특수 함수입니다. 이 비디오는 이벤트 루프의 작동 방식을 설명하는 데 매우 유용합니다.https://www.youtube.com/watch?v=cCOL7MC4Pl0
1 Quentin Sep 01 2020 at 12:53
아니요. 전달 된 함수는 requestAnimationFrame스레드가 아니라 대기열에 있습니다.