2024-04-25 11:32:53 发布
网友
等待discord.py事件时,可以使用commands.Bot.wait_for('message', timeout=30, check=check)或类似的'reaction_add'
commands.Bot.wait_for('message', timeout=30, check=check)
'reaction_add'
有没有办法等待message或reaction?我能想到的唯一方法是启动另一个线程并同时运行两个commands.Bot.wait_for(),但这似乎真的很糟糕
message
reaction
commands.Bot.wait_for()
如果有一种方法允许您等待多种类型的事件,那么最好了解一下。如果有人有任何想法,请告诉我
使用commands.Bot.add_listener(function, 'on_message')创建侦听器,当commands.Bot.wait_for通过或超时时,删除侦听器
commands.Bot.add_listener(function, 'on_message')
commands.Bot.wait_for
您可以使用asyncio.wait来wait_for多个事件
asyncio.wait
wait_for
done, pending = await asyncio.wait([ bot.wait_for('message'), bot.wait_for('reaction_add') ], return_when=asyncio.FIRST_COMPLETED)
asyncio.FIRST_COMPLETED在至少完成一个任务时停止等待,并将其返回为done。查看文档了解更多信息
asyncio.FIRST_COMPLETED
done
-^{}
使用
commands.Bot.add_listener(function, 'on_message')
创建侦听器,当commands.Bot.wait_for
通过或超时时,删除侦听器您可以使用
asyncio.wait
来wait_for
多个事件asyncio.FIRST_COMPLETED
在至少完成一个任务时停止等待,并将其返回为done
。查看文档了解更多信息参考资料:
-^{}
相关问题 更多 >
编程相关推荐