Javascript.如何阻止脚本执行,直到所有脚本都加载完成



我正在尝试创建小型浏览器游戏,并有很多脚本分类到不同的js文件。它们中的一些相互引用,彼此引用等等,因此按顺序加载它们,以便第一个不尝试使用第二个的函数是不可能的。因此我有一个常见的问题:

一个脚本试图运行另一个不存在的函数,并创建一个错误,停止脚本。

控制台问题的可视化示例

我也经常收到这个错误:

Uncaught ReferenceError:不能访问词法声明初始化前的'something_something'

我试图找到解决方案,但它们似乎不符合我的目的:

  1. "& lt;脚本推迟/async>"仍然会尝试做同样的事情,但有自己的时间,这仍然会导致问题。

  2. 窗口。addEventListener('load', function())——这是一个很好的解决方案,但不是我的问题(我认为),因为它仍然会创建一些加载错误的序列。

  3. 我可以尝试捕获错误,但它会创建很多额外的低效工作,并且可能需要重新加载脚本,所以我真的不确定它将如何工作。

  4. 模块可以使用,可能吗?不完全确定,因为模块需要相互引用。

基本上,我需要做的就是创建一些类似于许多程序都有的加载屏幕的东西,这样在所有程序加载之前什么都不会运行。或者不是这样的?在编程方面我还是个新手。

有办法做到这一点吗?或者可能有一些变通方法?

编写模块并使用像Parcel或Webpack这样的打包器

如果你在另一个文件中引用一个函数,写适当的导入:

import { myFunc } from ‘./otherModule‘

然后在你的html中,只包括你的main.js或entrypoint脚本。

最新更新