我怀疑" onTransition"在到达新状态后执行块(akka FSM)?或在达到新状态之前。
我读过的文章和书中提到了" ...(对我而言)建议"在达到新状态之前#34;
真的重要吗?
我想是的......我的意思是,改变到一个新状态意味着(在大多数情况下)改变状态数据。通常我们会在事件处理程序中更改状态数据(在" when-case-event"块中)。
但是,如果新状态取决于" onTransition"中执行的计算/操作的结果,该怎么办?块?在这种情况下,我们必须将该块移动到" when-case-event"块。
所以,我现在还不清楚......:是否有任何规则/指导:什么行动应该进入"什么情况下事件"以及应该采取什么行动?进入" onTransition"?
此外:我希望在Akka Doc的下一版本中,将包括对该主题的某种澄清/指导。
提前致谢, 拉嘎
答案 0 :(得分:2)
在onTransition
中,旧状态数据可通过stateData
获得,新状态数据可用nextStateData
。 onTransition
无法更改新状态,但您可以向self
发送消息。