window.requestAnimationFrame是否执行线程处理?

问题描述

window.requestAnimationFrame函数是否创建新线程以使该函数在其调用的地方以及该函数本身并行运行?因为我不明白为什么下面的代码不会导致堆栈溢出。

window.requestAnimationFrame调用mainmain调用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的函数被排队,而不是线程化。

,

requestAnimationFrame告诉浏览器在渲染下一帧之前运行该功能。 如果再次在主目录中调用requestAnimationFrame,则会将该函数放在下一个(不是当前)animationFrame的队列中。

在Javascript中,只有工作线程是线程。

requestAnimationFrame是一个特殊功能,用于在事件循环中的特定点执行代码。我发现这段视频对解释事件循环的工作原理很有帮助: https://www.youtube.com/watch?v=cCOL7MC4Pl0

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...