Typescript Dialogflow&;快速完成
当其他直通电话正常工作时,从dialogflow获得响应时,我遇到了一个问题 我知道这是代理的问题,但我不确定这是什么问题,也不知道如何解决,这就是为什么我在这里问 需要注意的要点Typescript Dialogflow&;快速完成,typescript,express,google-api,dialogflow-es,dialogflow-es-fulfillment,Typescript,Express,Google Api,Dialogflow Es,Dialogflow Es Fulfillment,当其他直通电话正常工作时,从dialogflow获得响应时,我遇到了一个问题 我知道这是代理的问题,但我不确定这是什么问题,也不知道如何解决,这就是为什么我在这里问 需要注意的要点 此代码正在添加到现有已测试的express应用程序中 一直在使用 可以找到Dialogflow FullFilment模板webhook 控制台成功输出我们有小时则不继续 如果注释行57到62(if部分)和取消注释行56代码将按预期响应 问题应在代理.hours功能中 您也尝试过这个.currentlyOpen()
- 此代码正在添加到现有已测试的express应用程序中
- 一直在使用
- 可以找到Dialogflow FullFilment模板webhook
- 控制台成功输出<代码>我们有小时代码>则不继续
- 如果注释行
和取消注释行57到62(if部分)
代码将按预期响应56
- 问题应在
功能中代理.hours
- 您也尝试过
这个.currentlyOpen()==true
更新代码以匹配注释。在出现问题时添加注释 问题在于,
此
与您认为的(或希望的)不同,这是由于如何调用hours()
以及如何调用此
具有不同的含义,具体取决于调用方式。进入血淋淋的细节,但简而言之(适用于你):
- 被调用的函数将
应用于全局对象,而不是this
的词汇绑定版本(即类内this
的值)this
- 要获取此的词汇绑定版本,需要使用
将值绑定到函数,或者使用箭头函数进行调用bind()
intentMap.set('Hours', agent => this.hours(agent));
问题在于,
this
不是您认为的(或希望的)它是什么,这是由于如何调用hours()
,以及如何调用this
有不同的含义,这取决于它的调用方式
- 被调用的函数将
应用于全局对象,而不是this
的词汇绑定版本(即类内this
的值)this
- 要获取此的词汇绑定版本,需要使用
将值绑定到函数,或者使用箭头函数进行调用bind()
intentMap.set('Hours', agent => this.hours(agent));
刚刚将
currentlyOpen
移出类以修复部分问题,它现在调用函数。仍然非常不确定如何将aiassist
数据放入此函数中我们看不到行号,因此有点难以理解您试图说的问题是什么。@希望我的编辑有帮助。很抱歉xjust将currentlyOpen
移出类以修复部分问题,它现在调用该函数。仍然非常不确定如何将aiassist
数据放入该函数中我们看不到行号,因此有点难以理解您试图说的问题是什么。@希望我的编辑有帮助。很抱歉x
intentMap.set('Hours', agent => this.hours(agent));