0
배우가 처음에 상태 변경에 대한 메시지를 보내고 나중에이 상태가 변경되었음을 알았습니다. 맞았 어? 여기 ActorContext 순서 변경
class MyActor extends Actor {
def receive = idle(Set.empty)
def idle(isInSet: Set[String]): Receive = {
case Add(key) =>
// sending the result as a message back to our actor
validate(key).map(Validated(key, _)).pipeTo(self)
// waiting for validation
context.become(waitForValidation(isInSet, sender()))
}
def waitForValidation(set: Set[String], source: ActorRef): Receive = {
case Validated(key, isValid) =>
val newSet = if (isValid) set + key else set
// sending acknowledgement of completion
source ! Continue
알림
// go back to idle, accepting new requests
context.become(idle(newSet))
를 보내고 나중에 당신은 아마 이동하는 것을 고려한다 상태
case Add(key) =>
sender() ! Rejected
}
def validate(key: String): Future[Boolean] = ???
}
// Messages
case class Add(key: String)
case class Validated(key: String, isValid: Boolean)
case object Continue
case object Rejected