无法访问其他函数上的会话状态数据



我正在为我的机器人创建一个不活动检查,如果自他发送的最后一条消息以来已经过去了 X 分钟数,它会向用户发送一条消息。

bot.dialog('SomeDialog',
function(session, args){
let text = "The text sent to the user";
session.send(text, session.message.text);
check(session); //The function where I send the session to do the checking
session.endDialog();
}
);

检查功能是问题发生的地方:

check(session){
if(!session.conversationData.talked){
session.conversationData.talked = 1;
}
}

当我运行它时,我总是得到

Cannot read property 'conversationData' of undefined

如果我在bot.dialog中使用session.conversationData.talked,它可以工作,但在check函数上不起作用。

我在这里做错了什么?

你的代码片段在我这边工作得很好,也许你可以提供你的整个图片以供进一步分析。

但是,根据您的要求,您可以考虑使用节点包botbuilder-timeout

这可能是一个"异步"计时问题。浏览器/服务器上的会话需要同步。

这是JS服务器端,还是浏览器端?这是针对什么框架的?

最新更新