javascript - 清除现有对话框

标签 javascript node.js botframework

当我输入“reset”命令时,我想重新开始对话并清除之前的所有对话,请问怎么做?我坚持了2天。 提前致谢。

这里是我的源代码。

bot.dialog('/reset', (session) => {
    session.endDialog();

    var msg = new builder.Message(session)
        .addAttachment(welcomecard_1.welcomeCard());

    session.send(msg);
})
.triggerAction({
    matches: /^reset$/i
});

我输入“reset”或“/reset”后 先前的对话 [红色] 将从对话框中删除,并且该 channel 正在使用直线。 enter image description here

更新: 我试过这段代码,但不行。

bot.use(builder.Middleware.dialogVersion({ version: 1.0, resetCommand: /^reset/i }));

最佳答案

您可以使用 session.clearDialogStack()session.endConversation()session.reset() 清除对话框堆栈。以下是它们之间的区别:

session.clearDialogStack()

  • 什么都不做

session.endConversation()

  • 选择性地向用户发送消息
  • 清除 conversationDataprivateConversationData
  • 向 channel 发送 endOfConversation 事件

session.reset()

  • 开始一个新的对话

关于javascript - 清除现有对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56121674/

相关文章:

c# - botbuilder 不等待来自 HTTP 响应的响应(使用 Restsharp)

javascript - jQuery 淡入淡出元素的 Z-index 问题

node.js - 环回 "hasManyThrough"关系。在哪里添加?

javascript - require 在 node.js 中的行为

node.js - 是否有任何 Node.JS IDE 可以像 Node.js 控制台那样进行 REPL 交互并维护状态?

node.js - Node JS microsoft-graph-client 返回空数组

node.js - 如何在微软团队机器人中使用自适应卡在其他浏览器中打开网址?

javascript - 使用javascript按下按钮时如何打开一个窗口并关闭另一个窗口?

javascript - NodeJS aes 解密不工作

javascript - 使用 jQuery 解析外部 JSON 文件