无法在Scala.js中保留状态

无法在Scala.js中保留状态,scala,scala.js,Scala,Scala.js,我正在尝试编写一个简单的scala.js应用程序。我现在的问题是,我不明白为什么我不能保存从服务器/用户那里获得的数据 更具体地说,以下是代码片段: 那么,接下来会发生什么呢。我成功地输入用户名,例如Blah,我在js控制台中看到一条很好的消息,上面写着“Got user name:Blah”, 但问题是,每次调用渲染器时,都会显示username为None 我想这可能是由于我错误地分配了一个线程中的变量(在js主线程中,我不知道它的定义是否正确),然后从actor线程读取这个变量。。。但同样

我正在尝试编写一个简单的scala.js应用程序。我现在的问题是,我不明白为什么我不能保存从服务器/用户那里获得的数据

更具体地说,以下是代码片段:

那么,接下来会发生什么呢。我成功地输入用户名,例如Blah,我在js控制台中看到一条很好的消息,上面写着“Got user name:Blah”, 但问题是,每次调用渲染器时,都会显示username为None

我想这可能是由于我错误地分配了一个线程中的变量(在js主线程中,我不知道它的定义是否正确),然后从actor线程读取这个变量。。。但同样的情况也发生在actor本身存储的变量上


我想我不太明白应该如何使用scala.js,因为我对scala和js都是新手。拜托,有人能解释一下这种奇怪的行为吗

只是想澄清一下:这是一个Akka.js应用程序?这是一个非常特殊的要求,有一个库在我上次检查时还在进行中——你可能想和Akka.js的人谈谈这个问题。也就是说,我的理解(记住,我自己从来没有使用过Akka.js)是演员在workers中操作,workers有自己独立的内存空间——我有点惊讶从演员那里访问
username
是合法的。我不认为你可以分享这样的价值观…是的,谢谢你的评论,它也是Akka.js应用程序。我已经把所有的上下文放到main()方法中,现在一切似乎都正常了。。。但我不知道为什么:(我改变的另一件事是删除对setName(…)的调用,并通过丑陋的html注入将用户名传递给main methd。好吧,它现在可以工作但以前没有工作的原因是Actor本质上是与main()分离的进程)。如果我理解正确,演员与主程序完全不共享任何内容,只共享消息,因此演员看不到
用户名
。请记住,使用演员编程是非常专业的东西,在Scala.js中仍然非常罕见——我建议先熟悉平台,然后添加Akka.js一旦你有了这个基础。。。
<!-- in my html -->
<script>
    example.RoomFrontend().setName("@name");
</script>