У меня есть 2 функции: первая, def_a
, является асинхронной функцией, а вторая - def_b
, которая является регулярной функцией и вызывается с результатом def_a
в качестве обратного вызова с помощью add_done_callback
функция.
Мой код выглядит следующим образом:
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()
И он отлично работает.
Проблема началась, когда вторая функция def_b
стала асинхронной. Теперь это выглядит так:
async def def_b(result):
next_number = result.result()
# some asynchronous work on the next_number
print(next_number + 1)
Но теперь я не могу предоставить его функции add_done_callback
, потому что это не регулярная функция.
Мой вопрос: возможно ли это и как я могу предоставить def_b
функции add_done_callback
, если def_b
является асинхронным?