答案 0 :(得分:1)
在对话框中,您可以调用其他对话框。例如。
bot.dialog("/", [
function(session, data, next()){
session.send("Hi");
if(session.message.text === "hello"){
// starts a new dialog
session.beginDialog("helloDialog");
next();
} else {
next();
}
}, function(sesion, data){
session.send("end of root dialog");
}
]);
bot.dialog("helloDialog",[
function(session){
session.send("inside the hello dialog");
session.endDialog(); // explicitly ends the dialog
}
])
当用户输入为你好时,输出为
当用户输入为其他内容时,输出为
session.endDialog
结束当前对话框,并继续父对话框。
session.endConversation
结束对话本身。
用技术术语来说,当调用一个对话框时,该对话框将移入名为dialogStack的堆栈中。当从当前对话框中调用另一个对话框时,该新对话框将放在dialogStack的顶部。当此新对话框完成其操作时,将从堆栈中弹出该对话框,并继续显示最后一个对话框。
调用session.endConversation
时,对话框堆栈立即被清空(尽管这种行为不能完全确定)