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