【发布时间】:2017-05-31 03:54:28
【问题描述】:
我正在尝试使用 Node.js 和 MS Bot Framework 编写我的第一个机器人。从微软提供的示例中,我无法弄清楚如何实现这种场景:
- Bot 向用户发送消息。
- Bot 等待用户的回答。
- Bot 运行另一个函数来处理这个答案。
示例代码如下:
if (!item.size) {
// Prompt for size
builder.Prompts.choice(session, "What size would you like?", "Small|Medium|Large|Extra Large");
} else {
//Skip to next waterfall step
next();
}
第一种方法(builder.Prompts.choice())实现了我想要的,但我不想使用丑陋的内置提示。我宁愿手动进行(向用户发送消息,提供选项,等待响应)。
第二种方法(next())只是直接跳到下一步,无需等待用户输入。
我创建了一个这样的对话框:
bot.dialog('name', [function 1() {}, function 2() {}]);
所以我只想找到一种方法,让function 1 输出一条消息并等待用户输入,然后转到function 2。
【问题讨论】:
-
在 c# sdk 中这是:context.Wait(nextMethod);。你应该会为 node.js 找到类似的东西。也许您可以获取用户输入并将其发送到另一个可以控制 Dialog 的功能?
-
我知道,Node 中没有类似的东西,因为对话逻辑与 C# 一点也不相似。
-
为什么不使用另一个函数来处理用户输入?
-
哪一个? @BobSwager
-
创建对话框,期待用户输入,在一个函数中处理用户输入,当你完成后就结束那个对话框。
标签: javascript node.js botframework