问题描述
我在这里有一个简单的代码。我使用https://github.com/yagop/node-telegram-bot-api电报框架制作了我的第一个机器人。我有10个问题。因此,如果我只想在用户回答前一个民意调查后才开始新的民意调查,我就不能知道该怎么办?我当前的代码仅列出我使用/ start时的所有10个民意测验。这是我的代码(我仅以这种方式使用代码段cos才能正常工作):
bot.onText(/\/start (.+)/,(msg,[source,match]) => {
const { id } = msg.chat
if (match === test1Code){
for (let i=0; i<test1Questions.length; i++){
bot.sendPoll(id,test1Questions[i],pollOptions,{
is_anonymous: false
})
}
}
})
解决方法
您需要某种队列或流管理器。我可以推荐node-telegram-operation-manager或mau query engine。或者,您可以使用数据库来跟踪来自特定userId的答案。使用这种方法,您将只发送第一个民意调查。然后,将根据轮询事件侦听器内部的逻辑发送其余的轮询。