首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在加载另一个JS脚本后加载JS脚本

在加载另一个JS脚本后加载JS脚本
EN

Stack Overflow用户
提问于 2018-10-03 20:57:36
回答 3查看 3.7K关注 0票数 5

下面是我的代码:

代码语言:javascript
运行
复制
<script src='app.js' defer></script> //very big js file
//lots of html stuff
<script> alert(1);</script>

问题是,这些是异步加载的。有没有办法等到第二个脚本加载完第一个脚本?

EN

回答 3

Stack Overflow用户

发布于 2018-10-03 21:02:31

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

代码语言:javascript
运行
复制
$.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
});
票数 3
EN

Stack Overflow用户

发布于 2018-10-03 21:01:57

Defer指示在页面加载之前不执行script标记的内容。因此,我实际上希望首先弹出警报,然后加载app.js。

在没有延迟的情况下,脚本应该按照您放置的顺序同步加载。

票数 0
EN

Stack Overflow用户

发布于 2018-10-03 21:13:53

您可以通过async-await实现这一点

创建一个JavaScript函数,将它们都包装起来。

代码语言: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();

您可以使用异步函数一个接一个地异步执行一个函数

其他资源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52627575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档