假设我的算法中有一个异步“核心”,即 meant 返回最终结果。
以及一些必须在之前和之后运行的同步部件。喜欢:
>>> b
>>> [[3,4],
[0,0]]
答案 0 :(得分:1)
异步功能可以(并且应该)由event loop运行,例如:
def run():
x = prepare()
r = asyncio.run(algo_async(x))
post(r)
(如果您使用的Python <3.7,请使用asyncio.get_event_loop().run_until_complete(algo_async(x))
代替asyncio.run
)
但是,请注意,首先使函数异步的主要原因是能够与其他异步函数同时运行。当您在同步函数中运行异步函数时,您将失去此功能以及所有相关的好处。
这就是为什么人们通常使事件循环运行整个程序的入口点,并使用make使所有需要运行异步功能的功能也异步运行。