Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Rather rough sketch of using requestIdleCallback to break up JS execution
function idle(action) {
return new Promise((resolve, reject) => {
requestIdleCallback(timing => resolve(action(timing)));
});
}
async function init() {
criticalPath();
await idle(lessImportant);
await idle(nonCritical);
}
function criticalPath() {
console.log('lots of important stuff');
}
function lessImportant() {
console.log('less important stuff');
}
function nonCritical() {
console.log('non-important stuff');
}
window.addEventListener('load', init);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.