如何在async函数中运行async.run_until_completed中的协程



问题在这里:

async def init():
loop = asyncio.get_event_loop()
loop.run_until_complete(main(sessions, message))
async def main(sessions, message):
# some code to execute...

我试图在run_until_complete中运行函数main(sessions, message),但问题是我无法在async函数中获得coroutine,因为它抛出了一个错误:RuntimeWarning: coroutine 'main' was never awaited

你能告诉我我应该如何正确地运行这样一个函数吗?

您不需要在协程中使用run_until_complete。在协程中等待某事完成的方法是等待它。

async def init():
await main(sessions, message)

只管做

import asyncio
async def init():
await main(...)
async def main(sessions, message):
...
loop = asyncio.get_event_loop()
loop.run_until_complete(init())

最新更新