Javascript 执行动态脚本后执行代码

Javascript 执行动态脚本后执行代码,javascript,async-await,axios,Javascript,Async Await,Axios,以下是我获取.html文件并提取所有标记的代码: const loadApp = async () => { try { const entries = await axios.get(`http://.../index.html`); let domParser = new DOMParser(); let tempDOM = domParser.parseFromString(entries.data, 'text/html');

以下是我获取.html文件并提取所有标记的代码:

const loadApp = async () => {
    try {
        const entries = await axios.get(`http://.../index.html`);
        let domParser = new DOMParser();
        let tempDOM = domParser.parseFromString(entries.data, 'text/html');
        tempDOM.querySelectorAll('script').forEach(script => {
            if (script.src) {
                const scriptElement = document.createElement("script");
                scriptElement.src = script.src;
                scriptElement.async = false;
                document.body.appendChild(scriptElement);
            }
        });
        console.log('Hello');
    } catch (error) {
        throw error;
    }
};

如何确保
console.log('Hello')
在执行完上述所有脚本后将运行上述代码确实保证了执行顺序与获取顺序相同?

我相信您想要的是在
scriptElement
上添加一个事件侦听器来侦听“加载”事件。大概是这样的:

const loadApp=async()=>{
试一试{
const entries=等待axios.get(`http://.../index.html`);
const domParser=新的domParser();
const tempDOM=domParser.parseFromString(entries.data,'text/html');
const scriptLoadPromises=tempDOM.querySelectorAll('script').map((script)=>newpromise((resolve)=>{
if(script.src){
const scriptElement=document.createElement(“脚本”);
scriptElement.src=script.src;
document.body.appendChild(scriptElement);
scriptElement.addEventListener(“加载”,解析);
}
否则{
解决();
}
}));
等待承诺。所有(承诺);
log('Hello');
}捕获(错误){
投掷误差;
}
};

在继续执行
console.log('hello')之前,应该等待加载所有其他脚本行。

我相信console.log将在上面的脚本之后执行。您甚至可以在axios通话中等待。当前它是如何执行的?@junmarcalibasjose我相信OP指的是在执行
console.log('hello')之前等待脚本内容加载到页面中