Javascript 加载另一个JS脚本后再加载它

Javascript 加载另一个JS脚本后再加载它,javascript,html,Javascript,Html,这是我的密码: <script src='app.js' defer></script> //very big js file //lots of html stuff <script> alert(1);</script> //非常大的js文件 //很多html的东西 警报(1); 问题是,这些都是异步加载的。是否有方法等待第二个脚本加载第一个脚本?延迟指示脚本标记的内容在页面加载之前不执行。所以我实际上希望先弹出警报,然后加载app.js

这是我的密码:

<script src='app.js' defer></script> //very big js file
//lots of html stuff
<script> alert(1);</script>
//非常大的js文件
//很多html的东西
警报(1);

问题是,这些都是异步加载的。是否有方法等待第二个脚本加载第一个脚本?

延迟指示脚本标记的内容在页面加载之前不执行。所以我实际上希望先弹出警报,然后加载app.js


在不延迟的情况下,sript应该按照您放置它们的顺序同步加载。

如果您使用jQuery,有一种非常简单的方法可以通过函数实现这一点。只需添加加载后需要执行的脚本部分,并将其作为参数传递给函数

$.getScript( "app.js" )
  .done(function( script, textStatus ) {
    console.log( textStatus );
    //your remaining code
  })
  .fail(function( jqxhr, settings, exception ) {
    //script fail warning if you want it
});

您可以通过异步等待来实现这一点

创建一个JavaScript函数来包装它们

const task1 = ()=>{
 // app.js content
}

const task2 = ()=>{
 // alert(1);
}

async function asyncCall(){
  await task1(); // then task2 want start until the task1 finishes
  task2();
};

asyncCall();
您可以使用异步函数异步执行一个又一个函数

额外资源:


您也可以使用JavaScript承诺解决同样的问题,但我更喜欢异步等待函数。它们不那么痛苦

如果执行顺序很重要,那么您不应该使用
延迟