Bot Framework + NodeJS:结束对话/对话和承诺链

时间:2018-10-01 12:22:45

标签: javascript node.js promise botframework

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

在给定的时间点上是否有一种一致的方法来打破承诺链?

是否有更好的方法来兑现允许更干净的休息的几个诺言?

0 个答案:

没有答案