我对Bot Framework有点陌生,我正在处理一些学习曲线问题。如果围绕某种复杂逻辑进行对话时,如果以正确的方式结束对话,则是此类问题之一。举例来说,我在代码的两个不同地方都有类似的东西:
someFunction(var)
.then(success => {
return someOtherFunction(someOtherVar)
})
.then(success => {
if (success) {
return yetAnotherFunction(otherVar)
} else {
session.endConversation('I'm done with this conversation.') //Change this with session.endDialog but get same result
}
})
.then(success => {
builder.Prompts.confirm('Are you sure?')
})
.catch(error => {
console.log(error)
})
现在,这里的问题是,如果我结束对话/对话,尽管我没有返回新的诺言,但连锁的诺言似乎还在继续。我可以在日志中看到对话/对话已正确结束,但是之后却收到一条错误消息,内容如下:
TypeError: Cannot read property 'prompt' of undefined
at Object.confirm
或者错误与代码中的所有内容有关,而不是与builder.Prompts.confirm()
无关。
为此,我开始相信我的链接Promises
的模式可能不太正确。然后我的问题是多方面的:
在给定的时间点上是否有一种一致的方法来打破承诺链?
或
是否有更好的方法来兑现允许更干净的休息的几个诺言?