在v3中,我们提供了触发操作按钮。
在v4中,如何实现触发操作按钮。另外,如何提供建议的 操作 按钮。
简单来说,我想在v4中使用以下v3代码功能。请提出建议。
bot.dialog('help', function (session, args, next) {
session.endDialog("message");
}).triggerAction({ matches: /^help$/i, });
答案 0 :(得分:0)
您要执行的操作称为中断。无论堆栈上有什么对话框,您都希望机器人能够响应全局关键字。您可以按照this guide进行操作,以获取详细说明。该指南使用Core Bot示例。
基本上,任何从示例扩展urls = ["https://stackoverflow.com/questions/tagged/javascript", "https://stackoverflow.com/questions/tagged/python"];
for (var reqNr = 0; reqNr < urls.length; reqNr++) {
reqUrl = urls[reqNr];
var AjaxPromise = fetch(reqUrl);
console.log("reqUrl");
console.log(reqUrl);
AjaxPromise.then(r => r.text()).then(result => {
if(result.includes("javascript")){
console.log(result);
// This is the wrong Url now, because of the asynchronity
getUrl = reqUrl;
console.log("reqUrl2");
console.log(reqUrl); // will only show the last url in loop because of the asynchronity.
// I could take r.url, but i am not sure i can also pass it together with result: https://stackoverflow.com/questions/28703625/how-do-you-properly-return-multiple-values-from-a-promise.
console.log("Found match for url: ", reqUrl); // not the "correct" reqUrl
// console.log("Found match for url: ", r.url); DOESNT WORK
}
});
}
类的对话框类都将使用覆盖的CancelAndHelpDialog
函数,该函数调用此onContinueDialog
函数:
interrupt
该功能检查用户输入的是“帮助”还是“?”或“取消”或“退出”并做出相应的响应。如果您不想遵循该示例,则仍然可以在有权访问对话框上下文的任何地方调用该函数。