Python asyncio add_done_callback с асинхронным определениемPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python asyncio add_done_callback с асинхронным определением

Сообщение Anonymous »

У меня есть 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 является асинхронным?>

Подробнее здесь: https://stackoverflow.com/questions/443 ... -async-def
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»