Microsoft Bot框架session.endDialog()使用

时间:2018-04-24 11:29:49

标签: node.js botframework

如果您将对话框替换为堆栈中的上一个对话框存储并存储在某处,我会在人们发布的某个地方阅读Bot文档。

现在我尝试按照endDialog()的方式,然后使用replaceDialog();

callRequest.GetWebAPICall(session, urlData, function (body) {
        if(body.statusCode == 200) { 
            if(body.data == undefined) { 
                builder.Prompts.choice(session,Want to Select List?", "Yes|No",{listStyle: builder.ListStyle.button});
            } else { 
                session.endDialog();
                session.replaceDialog('/Show List');                
            }
        } else {
            session.send('Something went wrong. You can use the back or top command.');
            session.replaceDialog('/menu');
        }
    });

需要知道我是否更换以下行

session.endDialog();
session.replaceDialog('/Show List');  

通过

session.endDialog('/Show List');

1 个答案:

答案 0 :(得分:2)

没有。 endDialog()没有启动新对话框的功能。您可以参考功能定义界面endDialog(message?: TextOrMessageType, ...args: any\[\]): Session;

在您的情况下,'/Show List'将作为消息发送给用户。

还有一个关于replaceDialog()的误解。

  

结束当前对话框并在其位置启动新对话框。在新对话框完成之前,不会恢复父对话框。

如果您需要存储上一个对话框,可以使用beginDialog()