在节点js上的不同js文件(在不同页面中)之间共享clojurescript原子

时间:2014-12-05 02:41:34

标签: node.js clojurescript

我正在使用带有clojurescript的node-webkit来制作我的桌面应用程序,当我尝试在多个窗口之间共享一个原子(包括不同的js文件)时遇到了一个问题。

当我将node-global-variable定义为(set! js/global.foo (atom bar))时,它会创建一个全局变量作为原子,但是当我尝试调用reset!/ swap时!在原子上通过另一个窗口中的另一个js文件,它崩溃,告诉我交换!/重置!类型atom不支持的方法。

我尝试了另一种方式,我使用(def foo (atom bar))(set! js/global.baz foo)定义了一个原子,然后我移动了所有交换!/ reset!我定义了foo的js的函数,其他js文件只读取js / global.baz而没有任何尝试写它...然后我发现bar重置了。 global.baz的值不会改变。

我在搜索这些内容时没有得到任何相关信息,似乎很少有人在cljs中使用节点全局变量。

我需要一些帮助......谢谢

1 个答案:

答案 0 :(得分:0)

要在页面之间保留数据,您可以使用one of persistence options。我认为Storage-Atom非常适合您的需求。