【发布时间】:2021-10-13 16:51:50
【问题描述】:
我在python的异步框架中实现了一个异步函数FastAPI
函数如下:
async def func2(num):
time.sleep(3)
return num
async def func1():
text = await func2(5)
print(text)
print('inside func1')
async def my_async_func():
print('start')
await func1()
print('finish')
在这里,当我执行 my_async_func 时,我期望异步行为和值被打印为
start
finish
inside func1
5
但它会同步打印为
start
5
inside func1
finish
如何异步处理并发操作和协程实现?
【问题讨论】:
-
这就是
await的全部意义——它让它同步等待函数返回。 -
你在
func1()中的代码:print(text)然后print('inside func1'),你怎么能在inside func1之后实现打印5?print不是异步的。 -
我认为等待 3 秒后,
inside func1将被打印出来。但实际上我希望在func1函数的延迟过程之前立即执行打印 finish 。如何获得 ? @jizhihaoSAMA @Barmar
标签: python async-await coroutine fastapi