requestIdleCallback 与承诺

requestIdleCallback vs promise

我刚刚了解到 window.requestIdleCallback,我想知道与简单承诺的区别。

据我所知,JS 已经擅长排队承诺,所以我看不出有任何好处,除非 requestIdleCallback 使用具有较低优先级的不同队列。在那种情况下,我会认为它很棒,因为我希望有一种方法可以明确哪些代码的优先级低于渲染。

window.requestIdleCallback 简单地 运行 在浏览器空闲期间执行该功能,以避免影响动画和输入响应等。

Promises 只是使用异步代码的一种方式。该代码可能 运行 当浏览器不空闲时(如果 promise 没有挂起),并且可能会影响延迟关键事件。

因此,promises 在浏览器空闲期间可能 运行 也可能不 运行,但 requestIdleCallback 在空闲期间将始终 运行(假设未超过超时) .

请注意,这两个概念不可互换。是的,您可以 运行 requestIdleCallback 中的异步“promise”代码,但不应使用回调来替换 promise 的功能。也就是说,你不应该用回调来代替 promises 的使用,而是在适当的时候一起使用它们。

这里有一些关于 window.requestIdleCallback 的信息:

https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback

这里的承诺:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise