Botframework 在Microsoft Bot Builder中是否有从对话中开始对话的方法?

Botframework 在Microsoft Bot Builder中是否有从对话中开始对话的方法?,botframework,chatbot,Botframework,Chatbot,我试图做的是用Bot Builder实现一个问题树。以下是我现在拥有的: bot.dialog('initialDialogue', [ function (session) { builder.Prompts.text(session, "What can I do for you?"); }, function (session, results) { userInput = session.message.text;

我试图做的是用Bot Builder实现一个问题树。以下是我现在拥有的:

bot.dialog('initialDialogue', [
    function (session) {
        builder.Prompts.text(session, "What can I do for you?");
    },
    function (session, results) {
        userInput = session.message.text;

        switch(initialDialogueParse(userInput)) {
            case "error":
                session.send("I'm not sure what you're asking. I'll figure this out sometime! Try again");
                session.beginDialog('initialDialogue');
            case "changePassword":
                session.beginDialog('changePassword');
            case "deleteAccount":
                session.beginDialog('deleteAccount');
            case "changeEmail":
                session.beginDialog('changeEmail');
        }
        session.endDialog();
    }
])
initialDialogueParse方法工作正常,工作完美,问题就在那之后。例如,当我输入一个提示“changePassword”的响应时,我得到:

  • 控制台中出现“错误:对话[]未找到”错误
  • 机器人会显示来自changePassword的提示
  • 机器人接着说:“哎呀,出了点问题,我们需要重新开始。”
  • 它再次循环初始化对话
我想要它做的基本上是退出initialDialogue对话框,切换到changePassword对话框。然后重复此循环,直到提问结束


编辑:我的switch语句中没有中断。下面的答案也适用,但错误在于我没有阅读文档

您可以对initialDialogue中的所有选项使用session.replaceDialog(“您的对话框”)选项,当您在自己的对话框中完成该选项所需的所有操作时,您可以使用session.replaceDialog(“initialDialogue”)返回initialDialogue。这样,循环将重复您想要的所有时间