如何在从异步一个调用的同步函数中等待异步函数?

时间:2018-12-28 12:31:13

标签: python asynchronous async-await

我有一个中等大小的烧瓶应用程序,我想将其转换为asyncio。当前,我的问题是我在调用堆栈中有一些网络调用10-12函数,但是我将用一个简单的示例来总结我的问题:

import asyncio

async def blocking_task():
    await asyncio.sleep(1)

def sync_method():
    await blocking_task() # Error here. This is not async method, but it is called by async method in the event loop

async def async_enrty():
    sync_method()

def main():
    loop = asyncio.get_event_loop()
    loop.run_until_complete(async_enrty())
    loop.close()
main()

假设我有一个阻止任务-blocking_task(),我想等待它。由于调用堆栈很大,因此我必须使每个函数异步,并等待它调用的每个函数,直到到达我的blocking_function。由于我在事件循环中调用了此函数,因此有什么方法可以在不使用async / await一直到阻塞函数的情况下等待它吗?

0 个答案:

没有答案