有没有办法从 Microsoft Bot Builder 的对话中开始对话?

Is there a way to begin a dialogue from within a dialogue in Microsoft Bot Builder?

我正在尝试做的是使用 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' 案例的响应时,我得到:

我想让它做的基本上是退出 initialDialogue 对话,然后切换到 changePassword 对话。然后这个循环将重复,直到提问行完成。

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

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