¿Window.requestAnimationFrame realiza subprocesos? [duplicar]
¿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
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
No. Las funciones pasadas a requestAnimationFrameestán en cola, no enhebradas.