Window.requestAnimationFrame executa threading? [duplicado]

Sep 01 2020

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

1 Snuffels11 Sep 01 2020 at 13:09

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

1 Quentin Sep 01 2020 at 12:53

Não. As funções passadas para requestAnimationFramesão enfileiradas, não encadeadas.