大家好我是 javascript 的新手,我需要帮助来理解动态导入。
假设有两个.js 文件'File1.js' 和'File2.js'。我的问题是我有一个变量,我们称它为“x”,它的值不时在“File1.js”中更改,但我想 console.log() 它,每次更改它价值已经取得,来自“File2.js”.
例如,如果程序依次调用 file1.js 和 file2.js。输出应该是这样的:
//Programm 调用 File1.js 并且 x 获取值 0 所以 x += 0
x = 0 //Programm 调用 File2.js,现在我想记录 x 的值(所以 console.log(x) = 0)
//Programm 调用 File1.js 并且 x 获取值 1 所以 x += 1
x = 1
//Programm 调用 File2.js,现在我想记录 x 的新值(所以 console.log(x) = 1)
File2.js 如何动态访问 x 的值?
注意。 X 在不同的 .js 文件 (File1.js) 中定义。
你看过观察者设计模式吗?
你的描述有点混乱。如果您的“程序”导入两个文件,那么您可以使用EventEmitter
所以,接下来的结构是:
程序.js:
const events = new EventEmitter();
file1.init(events);
file2.init(events);
File1.js:
//when you change a variable you can emit an event:
events.emit('variable-changed', newVariableValue);
File2.js:
// listen for changes:
events.on('variable-changed', newVariable => {});
另一个选项,如果你的主程序没有持续运行,你可以在“File1.js”中写入一个变量到一个文件,并在“File2.js”中读取变量值