gpt4 book ai didi

javascript - 在 NodeJS 中的事件回调之间共享变量

转载 作者:行者123 更新时间:2023-12-03 06:54:17 25 4
gpt4 key购买 nike

我正在尝试使用 messenger-bot 构建一个 FB Messenger 机器人模块。这是我的示例代码

bot.on('message', (payload, reply) => {
let userData = payload.message.text;

bot.getProfile(payload.sender.id, (err, profile) => {
if (err) {
console.log(err);
// throw err
}
else {
text = {
"attachment":{
"type":"template",
"payload":{
"template_type":"button",
"text":"Pick an option?",
"buttons":[
{
"type":"postback",
"title":"Option 1",
"payload":"first_option"
},
{
"type":"postback",
"title":"Option 2",
"payload":"second_option"
}
]
}
}
};
postBack(text, payload.sender.id, profile);
}
});
});

bot.on('postback', (payload, reply) => {
let text = payload.postback.payload;
bot.getProfile(payload.sender.id, (err, profile) => {
//Do something with the userData and the selected option
});
})

现在如何在“postback”的事件回调中访问userData?我只能想到以下解决方案

userData作为选项有效负载的一部分传递,例如

"buttons":[
{
"type":"postback",
"title":"Option 1",
"payload":"first_option||"+userData
}

并在“postback”回调中再次解析它。

有更好的方法吗?换句话说,如何在 NodeJS/JavaScript 中的回调之间共享变量?

最佳答案

假设这需要为多个用户提供服务,因此无法将您的 userData 范围扩大到更高的范围,您要么需要将其保存在数据库/缓存中并从“回发”中查询它,要么使用您的想法将其作为有效负载的一部分。

关于javascript - 在 NodeJS 中的事件回调之间共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37353755/

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