Встречается на собеседованиях • сегодня

Какие знаешь методы для получения результата асинхронной задачи

В Python для работы с асинхронными задачами есть несколько подходов:

  1. await - основной способ получения результата в async/await:
python
result = await some_async_function()
  1. asyncio.create_task() + await:
python
task = asyncio.create_task(some_async_function())
result = await task
  1. asyncio.gather() для нескольких задач:
python
results = await asyncio.gather(
    task1(),
    task2(),
    task3()
)
  1. asyncio.wait() с флагами (FIRST_COMPLETED и др.):
python
done, pending = await asyncio.wait([task1, task2])
for task in done:
    print(task.result())
  1. callback через add_done_callback:
python
def callback(future):
    print(future.result())

task = asyncio.create_task(some_async_function())
task.add_done_callback(callback)
  1. Future.result() (блокирующий вызов в синхронном коде):
python
result = task.result()  # Будет ждать завершения

Важно: в asyncio нельзя получить результат задачи напрямую, нужно либо await, либо callback. Для работы с результатами из синхронного кода используют asyncio.run() или loop.run_until_complete().

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы