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