gpt4 book ai didi

javascript - 如果我太早在 robots.brain 中设置一个值,它会被 hubot-redis-brain 覆盖

转载 作者:行者123 更新时间:2023-12-01 02:51:48 27 4
gpt4 key购买 nike

如果我在脚本的 module.exports 正文中初始化 robot.brain 中的属性,它将不起作用(请参阅下面的代码)。如果我在响应期间初始化它,它就会起作用。我关于它被 hubot-redis-brain 覆盖的假设正确吗?我该如何以良好的方式修复它?

module.exports = (robot) => {
robot.logger.debug("Setting the fucking property");
robot.brain.set("stringproperty", "stringvalue");
robot.logger.debug("SET!");
// logs these two entries before 'INFO hubot-redis-brain: Data for hubot brain retrieved from Redis'

const respondAndLog = (res, message) => {
robot.logger.debug("Responding: " + message);
res.reply(message);
};

robot.respond(/get_stringproperty/, (res) => {
respondAndLog(res, `${robot.brain.get("stringproperty")}`);
// prints null. WTF?
});

robot.respond(/get_laterinitializedproperty/, (res) => {
robot.brain.set("laterinitializedproperty", "laterinitializedvalue");
respondAndLog(res, `${robot.brain.get("laterinitializedproperty")}`);
// prints laterinitializedproperty, works OK
});
};

最佳答案

hubot-redis-brain 使 robot.brain 在从 redis 加载数据或初始化数据时发出 "connected" 事件,请参阅[https://github.com/hubotio/hubot-redis-brain/blob/487dd4a9641f35ffb5ae18fb5e1b09e8114c4b70/src/redis-brain.js#L55](see第 55 行和第 59 行)。所以这就是应该如何修复它:

robot.brain.on("connected", () => {
robot.logger.debug("Setting the fucking property");
robot.brain.set("stringproperty", "stringvalue");
robot.logger.debug("SET!");
});

关于javascript - 如果我太早在 robots.brain 中设置一个值,它会被 hubot-redis-brain 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46917666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com