python asyncio add_done_callback con def asíncrono
Tengo 2 funciones: la primera,def_a
, es una función asincrónica y la segunda esdef_b
que es una función regular y se llama con el resultado dedef_a
como una devolución de llamada con eladd_done_callback
función.
Mi código se ve así:
import asyncio
def def_b(result):
next_number = result.result()
# some work on the next_number
print(next_number + 1)
async def def_a(number):
await some_async_work(number)
return number + 1
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(def_a(1))
task.add_done_callback(def_b)
response = loop.run_until_complete(task)
loop.close()
Y es un trabajo perfecto.
El problema comenzó cuando también la segunda función,def_b
, se volvió asíncrono. Ahora se ve así:
async def def_b(result):
next_number = result.result()
# some asynchronous work on the next_number
print(next_number + 1)
Pero ahora no puedo dárselo aladd_done_callback
función, porque no es una función regular.
Mi pregunta es: ¿es posible y cómo puedo proporcionardef_b
aladd_done_callback
funciona sidef_b
es asincrónico?