Асинхронная функция может (и должна) запускаться циклом событий , например:
def run():
x = prepare()
r = asyncio.run(algo_async(x))
post(r)
(Если у вас Python <3.7, используйте <code>asyncio.get_event_loop().run_until_complete(algo_async(x)) вместо asyncio.run
)
Обратите внимание, однако, что основной причиной сделать функцию асинхронной в первую очередь является возможность запускать ее одновременно с другими асинхронными функциями.Когда вы запускаете асинхронную функцию внутри синхронной функции, вы теряете эту способность и все связанные с ней преимущества.
Именно поэтому обычно люди делают цикл обработки событий точкой входа всей программы и используют все функции, которые должны запускать асинхронную функцию, также асинхронно..