Jovo Framework 1.0.0中NEW_USER事件this.tell报错问题求助
解决Jovo Framework 1.0.0中NEW_USER事件里
this.tell报错的问题 问题根源
你碰到的TypeError: this.tell is not a function错误,核心原因是箭头函数不会绑定独立的this上下文。你代码里用的箭头函数() => { ... }会继承外层作用域的this,而非Jovo框架提供的技能处理上下文对象,所以自然找不到tell方法。
修复方案
把箭头函数替换成普通函数声明,这样this就能正确指向Jovo的处理上下文:
app.setHandler({ 'NEW_USER': function() { this.tell('Hello, I\'ve just installed this skill.'); } });
如果你偏好ES6写法,也可以用方法简写(同样能绑定正确的this):
app.setHandler({ 'NEW_USER'() { this.tell('Hello, I\'ve just installed this skill.'); } });
额外提示
在Jovo Framework 1.x版本中,事件处理器必须通过普通函数来获取正确的上下文,箭头函数因自身的this绑定特性,不适合定义这类处理器方法。另外注意字符串里的单引号需要转义(I\'ve),否则会引发语法错误,我在示例里已经修正了这一点。
内容的提问来源于stack exchange,提问作者Florian Kalisch
相关产品推荐
相关产品推荐

