我有一个用户界面,并向用户提供了一个按钮,该按钮执行函数longComputation(x: A): A,然后使用新的结果更新用户界面(特别是模型)。这个函数可能需要更长的时间来计算结果,因此应该并行计算。
Diode为我提供了Effect、PotAction和AsyncAction。我阅读了有关Effects和PotActions/AsyncActions的文档,但我甚至无法获得一个简单的示例。
有人能给我指一指或提供一个简单的工作示例吗?
我基于SimpleCounter示例创建了一个ScalaFiddle。有一个LongComputation按钮,它应该并行运行;但它不是。
发布于 2018-12-07 01:10:49
在JavaScript中,不使用Web Workers就不能并行运行,因为JS引擎是单线程的。Web Workers更像是独立的进程,而不是线程,因为它们不共享内存,您需要发送消息才能在workers和主线程之间通信。
发布于 2018-12-25 18:27:46
我有不到50个名气要评论,所以我必须创建一个新的答案,而不是评论@ochrons答案:
如前所述,Web Worker通过消息传递进行通信,不共享任何状态。这个概念在某种程度上类似于Akka -甚至还有Akka.js,它可以让你在ScalaJS中使用角色系统,因此也可以使用浏览器。
https://stackoverflow.com/questions/53610629
复制相似问题