假设我有正常的同步功能,在我的异步应用程序中经常调用它。如果我只是将其定义为异步函数以便我可以等待它,但我根本不更改其代码,这有什么区别?
答案 0 :(得分:3)
它没有(语义上的)区别,没有await
的协程仍然是完全可以等待的有效协程,可以传递给asyncio.run
,asyncio.create_task
,asyncio.gather
等。
您可能想添加一条注释,以使 reader 清楚该函数实际上不包含任何阻止代码。
例如,以下代码:
while some_condition:
await coroutine_without_await()
此代码在while
循环持续的时间内一直阻止事件循环,无论是否存在await
。