0

我有一个用户界面并向用户提供一个按钮,该按钮执行该功能longComputation(x: A): A并使用新结果更新用户界面(特别是模型)。此函数可能需要更长的时间来计算结果,因此应该并行计算。

二极管为我提供EffectPotActionAsyncAction。我阅读了有关EffectsPotActions/AsyncActions的文档,但我什至无法获得一个简单的示例来工作。

有人可以指出我或提供一个简单的工作示例吗?

我根据示例创建了一个ScalaFiddleSimpleCounter。有一个LongComputation按钮,应该并行运行;但不是。

4

2 回答 2

2

在 JavaScript 中,不使用Web Workers就无法并行运行,因为 JS 引擎是单线程的。与线程相比,Web Worker 更像是单独的进程,因为它们不共享内存,并且您需要发送消息以在工作线程和主线程之间进行通信。

于 2018-12-06T17:10:48.600 回答
0

Have less than 50 reputation to comment, so I have to create a new answer instead of commenting @ochrons answer:

As mentioned Web Workers communicate via message passing and share no state. This concept is somehow similar to Akka - even Akka.js exists which enables you to use actor systems in ScalaJS and therefore the browser.

于 2018-12-25T10:27:45.510 回答