从一个特定状态转换到另一个特定状态时执行操作?

时间:2014-11-25 15:03:24

标签: javascript fsm machina.js

有没有办法在Machina.js中的特定状态之间转换时执行操作?

例如,假设我有状态" A,B,C"。

我想写一个像:

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

这与Akka's FSM实施的精神相同。这可能吗?

谢谢!

2 个答案:

答案 0 :(得分: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 + "]");
        });

答案 1 :(得分:0)

你可以在A的onExit中设置一些你在C的onEnter中检查的内容吗?