2014-11-25 4 views
0

Есть ли способ выполнить действие при переходе между конкретными состояниями в Machina.js?Выполнение действия при переходе из одного конкретного состояния в другое?

Например, скажем, что у меня есть состояния «A, B, C».

Я хочу, чтобы написать функцию, как:

when("A", "C", function(){ console.log("Caught transition from A to C! Yay!"); } 

Это в том же духе, как Akka's FSM реализации. Это возможно?

Спасибо!

ответ

1

Выяснил это. Нужно просто наблюдать за событием transition. См. API doc here.

var fsm = new machina.Fsm({  
      initialState: 'A',  
      states: { 
       "A": {}, 
       "B" : {}, 
       "C" : {} 
      } 
     }); 


fsm.on('transition', function(transition){  
      console.log("[" + transition.fromState + "] -(" + transition.action + ")-> [" + transition.toState + "]"); 
     }); 
+0

Отлично - рад, что вы это нашли! Я собирался рекомендовать прослушивание события перехода. Другой вариант - проверить свойство priorState в FSM в действии ввода нового состояния. Я буду уверен и добавлю некоторую документацию по этим видам использования к вики проекта. – ifandelse

0

Можете ли вы установить что-то в onExit of A, которое вы проверяете в onEnter of C?

Смежные вопросы