如果您替换对话框,然后将以前的对话框存储在堆栈中并存储在某个地方,那么我会在有人张贴的地方阅读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');

最佳答案

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

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

还有关于replaceDialog()的误解。


  结束当前对话框并在其位置开始一个新对话框。在新对话框完成之前,父对话框将不会恢复。


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

10-07 23:09