在未指定requestIdleCallback
的情况下传递给timeout
的函数是否可以保证运行? (假设我们不在某些人为设计的场景中,而是专门设计来避免不确定的空闲状态)
如果指定了timeout
,是否可以保证执行顺序?例如
const options = { timeout: 10000 };
requestIdleCallback(fnOne, options);
requestIdleCallback(fnTwo, options);
requestIdleCallback(fnThree, options);
是否保证每次都以该顺序调用fnOne
,fnTwo
和fnThree
?
答案 0 :(得分:1)
Cooperative Scheduling of Background Tasks说:
在空闲时间段内,用户代理将按FIFO顺序运行空闲回调,直到空闲时间段结束或不再有资格运行的空闲回调为止。这样,用户代理将不必在单个空闲周期内运行所有当前发布的空闲回调。任何剩余的空闲任务都有资格在下一个空闲时间段内运行。
因此,我相信以您的示例为例,fnOne
,fnTwo
和fnThree
将按照该顺序执行。