Гарантирует ли requestIdleCallback выполнение и сохраняет ли он порядок выполнения? - PullRequest
0 голосов
/ 20 апреля 2020

Гарантируется ли выполнение функций, переданных в requestIdleCallback, если не указано timeout? (Предполагая, что мы не находимся в каком-то надуманном сценарии, специально разработанном для того, чтобы избежать неопределенного состояния простоя)

И если timeout указано , есть ли гарантия вокруг порядка выполнения? Например,

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

Гарантируется ли fnOne, fnTwo и fnThree запуск в таком порядке каждый раз?

1 Ответ

1 голос
/ 04 мая 2020

Совместное планирование фоновых задач говорит:

В течение периода ожидания пользовательский агент будет запускать обратные вызовы в режиме FIFO до тех пор, пока период ожидания не закончится или не закончится период ожидания. холостые обратные вызовы могут быть запущены. Таким образом, пользовательский агент не обязательно будет запускать все опубликованные в настоящее время неактивные обратные вызовы в течение одного периода простоя. Любые оставшиеся незанятые задачи могут выполняться в течение следующего периода простоя.

Поэтому я полагаю, что в вашем примере fnOne, fnTwo и fnThree будут выполняться в этом порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...