何时执行onTransition代码? - 阿克卡,FSM

时间:2014-06-30 04:48:04

标签: scala akka fsm

我怀疑" onTransition"在到达新状态后执行块(akka FSM)?或达到新状态之前。

我读过的文章和书中提到了" ...(对我而言)建议"在达到新状态之前#34;

真的重要吗?

我想是的......我的意思是,改变到一个新状态意味着(在大多数情况下)改变状态数据。通常我们会在事件处理程序中更改状态数据(在" when-case-event"块中)。

但是,如果新状态取决于" onTransition"中执行的计算/操作的结果,该怎么办?块?在这种情况下,我们必须将该块移动到" when-case-event"块。

所以,我现在还不清楚......:是否有任何规则/指导:什么行动应该进入"什么情况下事件"以及应该采取什么行动?进入" onTransition"?

  
    

此外:我希望在Akka Doc的下一版本中,将包括对该主题的某种澄清/指导。

  

提前致谢, 拉嘎

1 个答案:

答案 0 :(得分:2)

onTransition中,旧状态数据可通过stateData获得,新状态数据可用nextStateDataonTransition无法更改新状态,但您可以向self发送消息。