Skip to content

Instantly share code, notes, and snippets.

@dutchcelt
Last active February 11, 2024 20:35
Show Gist options
  • Save dutchcelt/81d05dbe1f95af9df1c2 to your computer and use it in GitHub Desktop.
Save dutchcelt/81d05dbe1f95af9df1c2 to your computer and use it in GitHub Desktop.
document.readyState with a Promise()
/**
* Module file domReady.js
*/
let domReady = () => {
return new Promise((resolve, reject) => {
(document.readyState) || reject("Can't resolve document readystate");
let listener;
(/d$|^i|^c/).test(document.readyState) ? resolve() : document.addEventListener("DOMContentLoaded", listener = event => {
document.removeEventListener("DOMContentLoaded", listener);
resolve();
});
});
}
export { domReady };
/**
* Main file main.js
*/
import { domReady } from './domready.js';
domReady().then(msg => {
console.log('DOM has loaded');
}, err => {
console.log(err);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment