以下是我打算构建的状态机的示例
this.statemachine =
{
state: 'idle',
transitions:
{
idle:{
ebaseinit: function ()
{
console.log("Firebase Init complete");
} ,
coreinit : function ()
{
console.log("Firestore Init complete");
}
},
ready:
{
fetchdata : function ()
{
console.log("Getting data");
}
}
}
}

答案 0 :(得分:1)
您可以捕获事件名称并将其用作对象键。
this.statemachine.transitions['ready']
答案 1 :(得分:1)
首先要了解的是statemachine.transitions
不是数组object
,这就是为什么你不能使用indexOf
if(this.statemachine.transitions)
let obj = this.statemachine.transitions[statemachine.state]
或
您可以使用for循环遍历对象并找到您要查找的内容
if (this.statemachine.transitions){
for (var key in this.statemachine.transitions) {
if (this.statemachine.transitions.hasOwnProperty(key)) {
if(this.statemachine.state == key){
console.log(this.statemachine.transitions[key])
}
}
}
}