【发布时间】:2018-09-17 20:15:04
【问题描述】:
renderer.js
ipcRenderer.sendSync('setGlobal', 'globalVarName').varInner.varInner2 = 'result';
main.js
global.globalVarName = {
varInner: {
varInner2: ''
},
iWontChange: 'hi'
};
ipcMain.on('setGlobal', (event, arg) => {
console.log(arg) // should print "result"
// what goes here?
})
console.log(varInner2) // should print "result"
这样的事情是否可能,即以这种方式设置globalVarName的varInner2?其次,有没有办法对此进行优化,这样我们就不必为每个全局变量重写这个过程(即使用动态变量名的某种方式)?
感谢任何想法或解决方案,如果这是一个常识性问题,请见谅。
【问题讨论】:
-
你确定你绝对需要这些变量是全局的吗?通常,您可以使用事件来完成所有这些操作,因为它是一种消息传递形式,可以替代通过这些全局变量共享内存,因此也许可以找到一个更简洁、架构更好的解决方案。
-
@T Mack:你有没有为此想出一个不依赖
getGlobal的好解决方案以及无法实际更改全局值的问题?
标签: javascript html node.js electron