¿Window.requestAnimationFrame realiza subprocesos? [duplicar]

Sep 01 2020

¿La window.requestAnimationFramefunción crea nuevos subprocesos para permitir que la función donde se llama y la función en sí se ejecuten en paralelo? Porque no entiendo por qué el siguiente código no da como resultado un desbordamiento de pila.

window.requestAnimationFramellamadas mainy mainllamadas window.requestAnimationFramey así sucesivamente ...

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>

Respuestas

1 Snuffels11 Sep 01 2020 at 13:09

requestAnimationFramele dice al navegador que ejecute la función antes de que se procese el siguiente cuadro. Si vuelve a llamar requestAnimationFramea main, pondrá esa función en la cola para el siguiente animationFrame (no el actual).

En Javascript, solo los trabajadores son subprocesados.

requestAnimationFramees una función especial para ejecutar código en un punto específico del bucle de eventos. Encontré este video bastante útil para explicar cómo funciona el bucle de eventos:https://www.youtube.com/watch?v=cCOL7MC4Pl0

1 Quentin Sep 01 2020 at 12:53

No. Las funciones pasadas a requestAnimationFrameestán en cola, no enhebradas.