Выполняет ли window.requestAnimationFrame потоки? [дубликат]
Создает ли window.requestAnimationFrameфункция новые потоки, чтобы позволить функции, в которой она вызывается, и самой функции работать параллельно? Потому что я не понимаю, почему следующий код не приводит к переполнению стека.
window.requestAnimationFrameзвонки mainи mainзвонки window.requestAnimationFrameи тд ...
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>
Ответы
requestAnimationFrameсообщает браузеру запустить функцию до того, как будет отрисован следующий кадр. Если вы снова вызовете requestAnimationFramemain, эта функция будет помещена в очередь для следующего (не текущего) animationFrame.
В Javascript только рабочие потоки.
requestAnimationFrame- это специальная функция для выполнения кода в определенной точке цикла событий. Я нашел это видео весьма полезным для объяснения того, как работает цикл событий:https://www.youtube.com/watch?v=cCOL7MC4Pl0
Нет. Переданные функции requestAnimationFrameставятся в очередь, а не в потоках.