node.js - 如何在 Microsoft Teams Bot - NodeJS 中调用父对话框?
问题描述
我有三个对话框DialogA
:DialogB
和DialogC
。DialogA
并且DialogB
都可以调用DialogC
。现在如果DialogC
是从调用的DialogA
,在结束时DialogC
,我如何确定DialogC
是从调用的DialogA
,我需要回调它。如果我使用return await context.endDialog();
,它会移动到下一步DialogA
。对话调用基于以下条件发生
DialogA {
async step1(context) {
if(some condition) {
return await context.beginDialog(DialogC);
}
//some other code
}
async step2(context) {
//step2 processing code
}
}
所有的对话框都是WATERFALLDIALOG。所以我需要找到的是如何返回到我DialogC
从任一对话框中调用DialogA
或DialogB
或重新启动DialogA
or的同一点DialogB
。
解决方案
如果我了解您的要求,我认为 ReplaceDialog 类可能是您正在寻找的。此外,您也可以使用 options 属性将值传递到对话框中。
DialogA
var options = ‘FromDialogA’
return await context.beginDialog(DialogC, options)
DialogC
if (context.options == ‘FromDialogA’) {
// back to the parent dialog
return await context.replaceDialog(DialogA)
}
推荐阅读
- android - 我可以从 Plivo 调用其他 API 吗?
- android - Kotlin 运算符分配
- ios - UIColor colorWithDisplayP3RGBA 转换为 CGColor 失去广色域
- java - SecureRandom setSeed 方法在 MacOS 上失败
- azure - 为什么我在为 Runbook 创建 Webhook 时遇到授权失败异常?
- apache - Imgur、Google、Facebook 等网站如何管理这么多独立的网络服务器?
- javascript - 使用javascript(或jquery)在json文件中查找当前成员总数
- javascript - Node.js:在 while-true 循环中承诺
- azure-active-directory - Msal.js getUser() 返回 null
- theorem-proving - 初学者,无法导入精益