Window.requestAnimationFrame esegue il threading? [duplicare]
La window.requestAnimationFramefunzione crea nuovi thread per consentire alla funzione in cui viene chiamata e alla funzione stessa di essere eseguite parallelamente? Perché non capisco perché il seguente codice non si traduca in un overflow dello stack.
window.requestAnimationFramechiamate maine mainchiamate window.requestAnimationFramee così via ...
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>
Risposte
requestAnimationFramedice al browser di eseguire la funzione prima che venga eseguito il rendering del frame successivo. Se chiami di nuovo requestAnimationFramein main, questa funzione verrà messa in coda per il frame di animazione successivo (non quello corrente).
In Javascript solo i lavoratori sono filettati.
requestAnimationFrameè una funzione speciale per eseguire codice nel punto specifico dell'Event Loop. Ho trovato questo video molto utile per spiegare come funziona l'Event Loop:https://www.youtube.com/watch?v=cCOL7MC4Pl0
No. Le funzioni passate requestAnimationFramesono in coda, non in thread.