Я просто читаю теорию конечных автоматов. Пожалуйста, учтите это:
event[guard]/action
State A -----------------------------> State B
Вот мой вопрос: если я определяю переход между состояниями A и B с событием, защитой и действием, как на приведенной выше «картинке»; и, кроме того, событие получено, и выражение защиты оценивается как истинное, тогда: будет ли действие выполнено, пока мой объект находится в состоянии A или B?
Другими словами, мне нужно, чтобы действие было настроено для выполнения в состоянии A или B (допустим, я хочу выбрать только одно состояние, в котором действие может быть выполнено)?
Google находит, говорит мне, что действие будет выполнено в точное время перехода; но у моего мозга есть проблемы, чтобы принять это: imo мой объект должен быть в определенном состоянии, пока выполняется действие (просто потому, что мой объект должен всегда быть в определенном состоянии). И выполнение действия может занять некоторое время.
Связано: что произойдет, если во время выполнения действия возникнет ошибка. Останется ли мой объект в состоянии A или он все равно перейдет в состояние B (помните, что событие было получено и выражение защиты оценивается как истинное)?