如果达到 Wait_For_Message 超时,则发送消息 Discord Py

Posted

技术标签:

【中文标题】如果达到 Wait_For_Message 超时,则发送消息 Discord Py【英文标题】:Send a message if Wait_For_Message timeout is reached Discord Py 【发布时间】:2019-02-20 23:19:49 【问题描述】:

如果 client.wait_for_message 达到超时,我正在尝试发送消息。在这种情况下,它是 30 秒。我使用了 TimeoutError 但它不会抛出任何错误或工作。

 try:
    msg = await client.wait_for_message(timeout= 30, author=message.author, check=check)
        if msg:
            await client.send_message(message.channel, "Nice job!  solved the scramble! The word was !".format(message.author.mention, word))
    except TimeoutError:
        await client.send_message(message.channel, "Oops! Nobody solved it. The word was !".format(word))

【问题讨论】:

【参考方案1】:

抱歉,经过一番研究,我想出了这个解决方案:

msg = await client.wait_for_message(timeout= 30, author=message.author, check=check)
if msg:
    await client.send_message(message.channel, "Nice job!  solved the scramble! The word was !".format(message.author.mention, word))
elif msg is None:
    await client.send_message(message.channel, "Oops! Nobody solved it. The word was !".format(word))

【讨论】:

【参考方案2】:
import asyncio

try:
    msg = await client.wait_for_message(timeout= 30, author=message.author, check=check)
    if msg:
        await client.send_message(message.channel, "message")
except asyncio.TimeoutError:
    await client.send_message(message.channel, "message")

您的缩进是错误的,并且您的语句 for except 也是如此 应该是 asyncio.TimeoutError

抱歉回复了 2 年的帖子

【讨论】:

抱歉,但我看不出您的答案与旧的和接受的答案有何不同。如果您认为缩进是错误的,您可以edit旧答案。我认为这会更好,而不是复制和超越旧的。 抱歉造成误会。但我建议使用@hardestchat 答案正下方的edit 链接。您所做的是复制过去并创建一个与旧答案几乎相同的新答案。 哦,对不起,我对堆栈溢出还很陌生 没关系。我只是回应向您解释这一点。不要害怕,错误可能会发生。很高兴您参与其中,欢迎您加入 SO。

以上是关于如果达到 Wait_For_Message 超时,则发送消息 Discord Py的主要内容,如果未能解决你的问题,请参考以下文章

(基本缩放)如果达到空闲超时,App Engine 是不是会关闭仍在忙于处理请求的应用?

如果达到超时,gen_tcp:recv/3 是不是会关闭套接字?

超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

[转]超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

Memcachier 达到缓存限制时 Heroku 请求超时

从 phantomjs 收到错误:错误:渲染时,已达到超时