Вот пример того, как мы можем прослушивать пользовательское событие.Это позволит вам «ждать» сценария и работать правильно.
// This lives in you scrip dependancy.
const scriptReadyEvent = new CustomEvent('MyScriptLoaded', {
bubbles: true
});
// Dummy a delay in loading a script
function demoDelay() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('foo');
}, 2000);
});
}
// Listen for script loaded
document.addEventListener('MyScriptLoaded', () => {
console.log('Script is loaded');
});
// The script would do this.
demoDelay().then(() => {
document.dispatchEvent(scriptReadyEvent);
});