首页 > 解决方案 > 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 之前导入它不会解决问题,因为导入解析顺序是不确定的。

标签: javascriptnode.jsecmascript-6es6-modules

解决方案


推荐阅读