gpt4 book ai didi

Python - 是否可以在 Discord.py-v1.0 中 wait_for 一个或另一个事件?

转载 作者:行者123 更新时间:2023-12-01 06:41:40 24 4
gpt4 key购买 nike

是否可以使用 wait_for 来等待 reaction_addreaction_remove

我已经看到有 on_reaction_addon_reaction_remove 函数,但我想要一种没有这些函数的方法。

我想要这样的东西:

reaction,user=await bot.wait_for('reaction_add/reaction_remove',check=check)

最佳答案

由于这看起来使用asyncio设施,因此使用内置函数。只需为每个任务创建一个任务,然后使用 asyncio.wait等待第一个发射:

pending_tasks = [bot.wait_for('reaction_add',check=check),
bot.wait_for('reaction_remove',check=check)]
done_tasks, pending_tasks = await asyncio.wait(pending_tasks, return_when=asyncio.FIRST_COMPLETED)

当其中一个任务完成时,它将返回,并且满足的任务将出现在done_tasks集中。如果其中一项任务完成后您不再对其他任务感兴趣,您可以继续取消其他任务,例如:

for task in pending_tasks:
task.cancel()

关于Python - 是否可以在 Discord.py-v1.0 中 wait_for 一个或另一个事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59433144/

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