目前有两种不同的API旨在将任务分解为计划的回调函数。
- setImmediate(非标准)
- requestIdleCallback(实验性的)
据我所知,目前没有JavaScript运行时(浏览器或Node)同时实现了这两个功能。
我想更好地了解这两个功能的比较。我意识到requestIdleCallback
有一个timeout
选项,可以用来允许浏览器决定何时调用它,并将IdleDeadline
对象传递给回调函数,而setImmediate
则传递任何提供的参数,但除此之外,这些API有什么区别呢?
例如,以下两个示例是否在功能上相同?
setImmediate(function() {
// Do something.
});
requestIdleCallback(function() {
// Do something.
}, {timeout: 0});
在多个回调已注册但第一个回调运行时间超过空闲时间的情况下该怎么办?
timeout: 0
,它们更相似吗?这似乎是违反直觉的。另外,请不要忘记只有setImmediate
的 Node。 - Alexander O'Maratimeout:0
。 - Jaromanda X