返回立即值,然后调用asyncio.sleep

2024-10-03 23:20:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要这个练习的帮助,我有这个功能:

async def check_name(self):
        await asyncio.sleep(5)
        if SOmeFunction():
            DoSomethng
        else:
            DosomethingElse

现在我想在其他函数中调用上面的函数,但问题是我希望下面的函数返回一个立即数,然后调用check_name()。这就是我到目前为止所做的(我想添加try..最后,但它没有起作用,它先调用check\u name,然后等待5秒,然后返回实际值。我想先返回值,然后调用check\u name()

async def func():
        value = func2()
        try:
          return value

        finally:
          await self.check_name()

Tags: 函数nameself功能asyncioasyncifvalue
1条回答
网友
1楼 · 发布于 2024-10-03 23:20:02

您可以使用asyncio.create_task指示事件循环等待check_name本身,即在后台运行它:

async def func():
    asyncio.create_task(self.check_name())
    value = func2()

请注意,如果执行此操作,check_name()的返回值将不可用,如果它引发异常,它将仅由事件循环报告

相关问题 更多 >