javascript - 微任务是否保证在它们排队的同一动画帧内触发?

标签 javascript asynchronous task requestanimationframe

比如Promises使用微任务,我验证了here它们可以在动画帧结束之前被填充(在 Chrome 中)。我说的是用 requestAnimationFrame 制作的帧。

我想知道我们有什么保证,因为微任务将在同一个动画帧内触发,在一些逻辑排队微任务之后和动画帧结束之前(例如,在动画帧内解决 promise 时)。

如果有一定程度的保证,那么我相信这有助于为 Does MutationOberserver handler fire within the same animation frame? 提供答案.这甚至可能是同一个问题(间接地)。

最佳答案

好像是

尝试

function a() {
    requestAnimationFrame(b=>{
        console.log(b, 'rAF');
        Promise.resolve(1).then(()=>console.log('promise'));
    })}
a();a();

你会得到

585838.7970909999 rAF
promise
585838.7970909999 rAF
promise

关于javascript - 微任务是否保证在它们排队的同一动画帧内触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40647311/

相关文章:

c# - 任务工作项优先级

javascript - JQuery - 向输入添加值,但一个输入没有 ".value"属性

javascript - 如何使用window.print()获取页面的打印预览?

WCF:在服务器上生成异步工作线程是否安全?

.net - 我们是否总是需要使用 async 关键字?

javascript - grunt-contrib-requirejs - 需要一点建议

javascript - 如何在 angularjs 中清除或重置表单中的数据?

javascript - 如何获得区域值(value)?

http - 单击按钮以查看更改时,必须重新加载应用程序(Flutter)

c# - 我应该如何将返回非泛型任务的函数转换为 ValueTask?