首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cancelAnimationFrame如何处理回调中的副作用?

cancelAnimationFrame如何处理回调中的副作用?
EN

Stack Overflow用户
提问于 2013-06-14 02:57:48
回答 1查看 473关注 0票数 0

requestAnimationFrame接受一个回调函数,该函数在显示帧之前运行。假设这个回调函数有如下副作用:

代码语言:javascript
运行
复制
function callback {
  ++GLOBAL_VAR_A;
  ++GLOBAL_VAR_B;
}

如果我在该回调的请求上调用cancelAnimationFrame,回调会是原子的吗?换句话说,是否保证回调要么完全执行,要么根本不执行?或者,取消是否可以让GLOBAL_VAR_A递增,而不是GLOBAL_VAR_B

此外,如果这个回调是原子的,如果我成功地取消了框架,回调是否会执行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-14 03:24:19

Javascript是单线程的,所以这个问题不会显示出来:当cancelAF被调用时,回调是否被调用。如果调用了它,则不会执行任何操作。如果它没有被调用,它就不会在以后被调用。你的问题暗示cancelAF也会取消正在进行的回调,但规范并没有对此只字不提: MDN description是:

window.cancelAnimationFrame

取消先前通过调用window.requestAnimationFrame()安排的动画帧请求。

( https://developer.mozilla.org/en-US/docs/Web/API/window.cancelAnimationFrame )。

这是一个被取消的“请求”,而不是回调。

也许说得更清楚一些:如果你在++GLOBAL_VAR_A之后++GLOBAL_VAR_B;之前调用cancelAF,那么这意味着回调已经被调用了,而cancelAF什么也不做。

cancelAF没有返回值,所以你不能告诉你“取消(领导)帧成功”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17094904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档