在非异步函数中调用异步函数并获得返回值的方法是使用asyncio.run()函数来运行一个新的事件循环,并在该循环中调用async函数。

以下是一个示例代码:

import asyncio

async def my_async_function():
    await asyncio.sleep(1)
    return 'Hello, async world!'

def my_sync_function():
    result = asyncio.run(my_async_function())
    return result

print(my_sync_function())  # 输出:Hello, async world!

在这个示例中,my_async_function是一个异步函数,用于模拟一个耗时的异步操作。my_sync_function是一个同步函数,它通过调用asyncio.run()方法来运行my_async_function,并等待其完成。

请注意,在使用asyncio.run()时,它会创建一个新的事件循环并运行异步函数,完成后会自动关闭事件循环。

最后,my_sync_function返回了my_async_function的返回值,并将其打印到控制台上。


原文地址: https://www.cveoy.top/t/topic/o3ky 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录