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

时间:2018-06-19 17:39:25

标签: javascript node.js botframework

我正在为我的机器人创建一个不活动检查,如果该机器人自上次发送消息以来已经过去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

如果我在session.conversationData.talked中使用bot.dialog,则可以使用,但不能在check函数上使用。

我在这里做什么错了?

2 个答案:

答案 0 :(得分:3)

您的代码段对我而言效果很好,也许您可​​以提供整个项目的图片以供进一步分析。

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

答案 1 :(得分:0)

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

这是JS服务器端还是浏览器端?这打算用于什么框架?