Window.requestAnimationFrame executa threading? [duplicado]
A window.requestAnimationFramefunção cria novos threads para permitir que a função onde é chamada e a função em si seja executada em paralelo? Porque eu não entendo porque o código a seguir não resulta em um estouro de pilha.
window.requestAnimationFrameligações maine mainligações window.requestAnimationFramee assim por diante ...
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>
Respostas
requestAnimationFramediz ao navegador para executar a função antes que o próximo quadro seja renderizado. Se você chamar novamente requestAnimationFrameem main, essa função será colocada na fila para o próximo animationFrame (não o atual).
Em Javascript, apenas os workers são encadeados.
requestAnimationFrameé uma função especial para executar código em um ponto específico no loop de eventos. Achei este vídeo bastante útil para explicar como funciona o loop de eventos:https://www.youtube.com/watch?v=cCOL7MC4Pl0
Não. As funções passadas para requestAnimationFramesão enfileiradas, não encadeadas.