如何在SDK4中取消当前对话

时间:2018-10-17 13:55:19

标签: node.js botframework

我当前正在尝试创建一个全局中断,以便如果用户被卡在对话树中,他们可以键入“取消”,那么这将使用户脱离他们被卡在的树中并允许他们启动再次问问题。在SDK3中,通过使用

bot.dialog('/cancel', (session) => {
        session.send('The current action has been cancelled. either try again or type "Help"');
        session.endDialog();
    })
    .triggerAction({
        matches: /cancel/i,
    });

请参阅SDK4文档,建议使用cancelAllDialogs重新创建类似的功能。但是,每当我尝试使用它时,我都会不断 “ TypeError:turnContext.cancelAllDialogs不是函数”。

我用于获取此代码的代码是

await turnContext.cancelAllDialogs(`The current action has been cancelled. either try again or type "Help"`);

我不正确地使用了此功能,还是在某个地方缺少了模块,或者有更好的方法来处理此问题?

1 个答案:

答案 0 :(得分:0)

此处的问题应该是referred内文档中的turnContextdialogContext一样cancelAllDialogs()

await dialogContext.cancelAllDialogs(`The current action has been cancelled. either try again or type "Help"`);

turnContext为您的漫游器当前发生的来回创建方法,而dialogContext是对话堆栈的更广泛范围。