我不是在第二个瀑布函数中访问实体的正确方法。
我有这个代码结构:
dialog.on('myintent', [funcA, funcB, funcC]);
function funcA(session, args, next)
{
:
:
next()
function funcB(session, args, next)
{
:
:
next()
funcA由框架传递arg对象中的实体和意图。但是在funcB中,args被设置为只包含名为resumed的属性的对象。我可以在新对象上明确设置实体并像下一个那样传递它({e:entities})。框架可以做到吗,我只是不知道怎么做?
感谢。
答案 0 :(得分:0)
我在botbuilder中理解瀑布模型的方式,您要么使用next()显式调用瀑布中的下一个函数,要么第二个函数是使用不同参数集的第一个函数的后续跟踪。
当您调用next()时,您实际上是在没有任何数据的情况下自行调用跟进功能。交换数据只是像你一样移交你的对象。
另外,请考虑一下:next(args);
如果您想移交新的输入内容,请考虑以下事项:
bot.dialog('/', [
function (session, args, next) {
builder.Prompts.text(session, 'Hi! What is your name?');
},
function (session, results, next) {
session.send('Hello %s!', results.response);
},
...
]);
在这种情况下,提示符使用相应的参数调用下一个函数。