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
我刚刚了解到 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