Starting async function without await
Async function in asyncio cannot start directly. It should be wrapped in asyncio.create_task
.
The asyncio.ensure_future
can also be used. But
create_task() (added in Python 3.7) is the preferable way for spawning new tasks.
Call usual function asynchronously with event loop
- start on next tick:
loop.call_soon(func)
- delay for some time before start:
loop.call_later(delay, func)
- start at a time:
loop.call_at(when, func)
See in asyncio event loop.
To await a usual function by returning Future
object
Using asyncio.add_done_callback
can help.
But I am not sure what scene we need it instead of await async_func()
. Maybe the comment here can provide some help.