当异步代码有多个需要等待的对象时,可以使用asyncio.gather()
函数来返回一个单个的Task
对象。
asyncio.gather()
函数是Python标准库asyncio
中的一个方法,用于并发运行多个协程,并等待它们全部完成。它接受多个协程对象作为参数,并返回一个Task
对象,表示这些协程的集合。
下面是使用asyncio.gather()
函数返回单个Task
对象的示例代码:
import asyncio
async def coroutine1():
await asyncio.sleep(1)
return 'Result 1'
async def coroutine2():
await asyncio.sleep(2)
return 'Result 2'
async def main():
task = asyncio.gather(coroutine1(), coroutine2())
result = await task
print(result)
asyncio.run(main())
在上面的示例中,coroutine1()
和coroutine2()
是两个需要等待的异步协程。asyncio.gather()
函数将这两个协程作为参数传入,并返回一个Task
对象。然后,我们使用await
关键字等待Task
对象完成,并将结果赋给result
变量。最后,我们打印出结果。
这里需要注意的是,asyncio.gather()
函数返回的Task
对象的结果是一个列表,按照传入的协程顺序排列。在上面的示例中,result
的值将是['Result 1', 'Result 2']
。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云