requestIdleCallback是否保证执行,并保留执行顺序?

时间:2020-04-20 13:39:20

标签: requestidlecallback

在未指定requestIdleCallback的情况下传递给timeout的函数是否可以保证运行? (假设我们不在某些人为设计的场景中,而是专门设计来避免不确定的空闲状态)

如果指定了timeout ,是否可以保证执行顺序?例如

const options = { timeout: 10000 };
requestIdleCallback(fnOne, options);
requestIdleCallback(fnTwo, options);
requestIdleCallback(fnThree, options);

是否保证每次都以该顺序调用fnOnefnTwofnThree

1 个答案:

答案 0 :(得分:1)

Cooperative Scheduling of Background Tasks说:

在空闲时间段内,用户代理将按FIFO顺序运行空闲回调,直到空闲时间段结束或不再有资格运行的空闲回调为止。这样,用户代理将不必在单个空闲周期内运行所有当前发布的空闲回调。任何剩余的空闲任务都有资格在下一个空闲时间段内运行。

因此,我相信以您的示例为例,fnOnefnTwofnThree将按照该顺序执行。