Apr 12, 2024
Manually defer code execution by briefly interrupting your work to give the browser opportunities to run more important tasks.
// https://web.dev/articles/optimize-long-tasks#defer-code-execution
export const yieldToMain = async (callback: () => void) => {
if (globalThis?.scheduler?.yield) {
await globalThis.scheduler.yield();
} else {
await new Promise((resolve) => setTimeout(resolve, 0));
}
callback();
};