我正在使用带有 PersistentFSM 的 akka,并希望能够在应用事件后使用 stateData 值回复消息
when(StartedState) {
case Event(..., ...) =>
...
stay applying BidPlaced(...) replying BidPlacedReply(stateData)
}
BidPlacedReply 是一个具有 apply 方法的对象,该方法允许基于我的 stateData 的某些字段构造 BidPlacedReply,例如,我希望能够使用包含当前最高投标人 ID、最高投标人价格的 BidPlacedReply 进行回复......和此值在修改状态并产生“stateAfter”的 applyEvent 中计算。
不幸的是,“回复 BidPlacedReply(stateData)”方法在应用 applyEvent 之前使用 stateData 值调用 BidPlacedReply.apply 方法(这就是我在日志中看到的),
我尝试了以下构造,但它没有修改下一条消息的 stateData(需要调用应用程序!!!)
applyEvent(BidPlaced(...), stateData) match {
case stateDataAfter => stay replying BidPlacedReply(stateDataAfter)
}
有谁知道我如何回复与 applyEvent 的结果相对应的 stateData 值(stateData“之后”)?