Встречается на собеседованиях • сегодня
Какие знаешь методы для получения результата асинхронной задачи
В Python для работы с асинхронными задачами есть несколько подходов:
- await - основной способ получения результата в async/await:
python
result = await some_async_function()- asyncio.create_task() + await:
python
task = asyncio.create_task(some_async_function())
result = await task- asyncio.gather() для нескольких задач:
python
results = await asyncio.gather(
task1(),
task2(),
task3()
)- asyncio.wait() с флагами (FIRST_COMPLETED и др.):
python
done, pending = await asyncio.wait([task1, task2])
for task in done:
print(task.result())- callback через add_done_callback:
python
def callback(future):
print(future.result())
task = asyncio.create_task(some_async_function())
task.add_done_callback(callback)- Future.result() (блокирующий вызов в синхронном коде):
python
result = task.result() # Будет ждать завершенияВажно: в asyncio нельзя получить результат задачи напрямую, нужно либо await, либо callback. Для работы с результатами из синхронного кода используют asyncio.run() или loop.run_until_complete().

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы