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

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