Я пытаюсь изменить состояние FSM в будущем, но я не работаю. Я думаю, что ищу метод, похожий на pipeTo.
When(State.Waiting) {
case Event(anyMsg, anyData) =>
asyncCode.map(res =>
if (res == 1) {
goto(State.Working) using Data.MyData
} else {
stay() replying "bad response"
}
)
}
команда goto выполняется, но fsm не меняет состояние на State.Working
Я сам нашел эту работу
When(State.Waiting) {
case Event(anyMsg, anyData) =>
asyncCode.map(res =>
if (res == 1) {
self ! "do job"
} else {
stay() replying "bad response"
}
)
case Event("do job", anyData) => {
goto(State.Working) using Data.MyData
}
}
Может быть, есть лучшая идея для решения проблемы