在执行任何其他代码之前,在 es6 项目中强制初始化全局状态的普遍接受的模式是什么?
//main.js
import './moduleA.js'
//Set up some state e.g. database connection or loggers.
logger.configure(...)
//moduleA.js
//access db or logger
logger.log("I will fail since I am not configured yet!");
export default = () =>{
....
}
如果moduleA需要访问记录器或数据库连接,它们将失败,因为被调用者的代码在调用者之前被解析。使用在其中进行初始化的自己的模块并在 main 中的 moduleA 之前导入它不会解决问题,因为导入解析顺序是不确定的。