В Chrome появилась интересная функция
scheduler.yield()Ее суть в том, что она позволяет обрабатывать тяжелые операции (например трансформация DOM).
Она выходит из текущий функции в основной поток, выполняет его и затем возвращается обратно.
async function respondToUserClick() {
giveImmediateFeedback();
await scheduler.yield(); // Тут выходим из respondToUserClick() в mainThread, а потом автоматически возвращаемся и продолжаем работу.
slowerComputation();
}
Раньше для этого мы использовали
setTimeout(() => {}, 0), но у них есть недостатки.Похоже, что данный инструмент позволяет их решить.
На данный момент
scheduler.yield() доступен только в браузерах на базе Chromium, правда есть частичный polyfillhttps://developer.chrome.com/blog/use-scheduler-yield?hl=ru