首页 > 解决方案 > Bot Framework + NodeJS:结束对话/对话和承诺链

问题描述

我对 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可能不太正确。我的问题是多方面的:

是否有一致的方法可以在给定点打破承诺链?

或者

有没有更好的方法来完成几个允许更彻底的休息的承诺?

标签: javascriptnode.jspromisebotframework

解决方案


推荐阅读