我的问题是关于处理来自其他参与者的参与者的响应并使用这些结果执行一些操作。
这是接收方法的简短伪示例:
case data: Data =>
val data2 = actor1 ? data.fieldA
val almostFinished = data2.flatMap { d2 =>
val data3 = actor2 ? d2.fieldB
data3.map { d3 =>
actor3 ? someStuff(d3)
}
}
almostFinished.map { r =>
someFinalStuff(r)
} pipeTo sender
这里是一些通用的业务处理逻辑。
首先,它看起来完全不可读。其次 - 地图中的故障没有得到处理,也没有无处报告。
您能否解释一下我应该如何处理演员和消息方面的这种逻辑?
谢谢!