javascript - ES6项目中共享状态的初始化(模块解析顺序)
问题描述
在执行任何其他代码之前,在 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 之前导入它不会解决问题,因为导入解析顺序是不确定的。
解决方案
推荐阅读
- xpath - 如何在逗号 XPath 后添加空格
- python - 测量执行特定代码行的硬件性能
- php - 避免双重预订/双重消费
- c# - WIX 自定义操作在 InstallFinalize 之后修改 INSTALLFOLDER 中的文件
- excel - 清理 InternetExplorer 实例时返回 HTMLDocument 的有效方法
- android - JS UI在处理cameraX的图像分析时被阻塞
- python - 如何通过点击pygame中的按键来改变我的球方向?
- typescript - 使用 TypeScript 选项安装 Quasar 测试扩展时出现 Tsconfig 错误
- python - Jupyter Notebook 无法配置和安装库
- function - 在函数开始时计算的值稍后不会在同一函数中记住