有人知道状态机的javascript实现吗?我的目标是设置一个状态机实现,将事件绑定到状态转换。因此,如果用户点击一个按钮,那么状态就会改变,例如,这种状态可能会定义要改变的对象中的某些值。
我希望这是一个状态机,因为将会有一个规则json文件,它允许在调用某些事件时指定各种对象的值发生了什么变化。因为这将在文件中结构化,所以我认为将该信息解析到状态机对象中会很容易。
发布于 2013-03-26 23:58:50
在js中,有限状态机有两个主要的库:
1/ Machina:有很好的文档,例如,开箱即用支持两个JavaScript消息总线提供程序:postal.js和amplify.js。
2/ Javascript State Machine:更简单、更容易使用,非常适合“基本”用途。
发布于 2016-12-24 04:07:41
我最近用JS构建了一个状态机实现,这肯定是最容易配置的,这要归功于它的转换DSL:
transitions: [
'next : intro > form > finish',
'back : intro < form < error',
'error : form > error',
'restart : intro < finish'
]它在配置和事件处理程序分配方面都非常灵活,你可以在运行时添加和删除状态,暂停和恢复转换,挂接到大量事件中,使用jQuery和反应式框架的帮助器,如Vue:

文档和一大堆演示:
发布于 2015-01-27 02:58:33
关于我的状态机: stateflow我刚刚创建了自己的状态机,因为我没有找到对我来说足够简单的状态机。
使用js对象定义流,其中属性是状态名称,值是具有以下属性的另一个js对象。
状态类型:状态实例对象设置为(default).
的下一个状态
简单的例子
var stateflow = require('stateflow');
var flow = new stateflow.StateFlow({
a: {
type:'begin',
action: function(complete) {
// do something
complete('done');
},
on: {
done:'b',
again:'a'
}
},
b: {
type:'end',
action: function(complete) {
complete('finished');
}
}
});
flow.start(function(event) {
console.log('flow result:', event);
});在git https://github.com/philipdev/stateflow或通过npm查看它。
https://stackoverflow.com/questions/13262392
复制相似问题