可能是一个非常愚蠢的问题,但是:这会在控制台中打印'yeeeeeees',但是在switch语句中会抛出Unknown步骤错误。
我做错了什么?
if (step === 'menuLoaded') console.log('yeeeeeeeees');
switch (step) {
case 'menuLoaded':
this.window.activate_side_menu();
this.handleDomainFtp();
break;
case 'ftpStep1':
this.handleDomainFtp(1);
break;
case 'ftpStep2':
this.handleDomainFtp(2);
break;
case 'startMysql':
alert('starting mysql');
this.handleDomainMysqlList();
break;
case 'mysqlList':
this.handleDomainMysql();
break;
case 'mysqlPage':
this.handleDomainMysql(true);
break;
case 'done':
run();
break;
default:
throw new Error('Unknown step: ' + step);
break;
}
答案 0 :(得分:1)
我得到的错误是TypeError: Object [object DOMWindow] has no method 'activate_side_menu'
- 您确定在可用范围内的某处声明了该功能吗?
答案 1 :(得分:0)
由于显然没有其他方法可以解决我的问题,我只会自己回答。
问题在于以下代码。 后来我有另一个switch语句,抛出了完全相同的Error()。
像我说的那样,可能是傻事......但是感谢每个人的时间!
答案 2 :(得分:0)
最有可能需要将'this'分配给'var self'并使用'self'代替。
答案 3 :(得分:0)
尝试使用没有“break”的默认语句
default:
throw new Error('Unknown step: ' + step);
}
答案 4 :(得分:-2)
我很确定JavaScript的 switch()
不会接受字符串 - 你必须使用整数值。如果您想使用名称,请使用类似枚举的变量:
const step_menuLoaded = 0;
const step_menuFtp1 = 1;
const step_menuFtp2 = 2;
const step_startSql = 3;
...
击> <击> 撞击>
您是否检查过字符串中不可打印字符的代码/来源?