Что такое Future в asyncio
Python
Middle
Без компании
Что такое Future в asyncio
Ответы
Future в asyncio — это объект, представляющий результат асинхронной операции, который может быть еще не готов. Это аналог Promise из других языков. Future используется для отслеживания состояния операции (ожидание/завершено) и получения результата или исключения.
Основные методы:
- `done()` — проверяет, завершена ли операция
- `result()` — возвращает результат или выбрасывает исключение
- `add_done_callback()` — добавляет колбэк при завершении
Пример:
```
import asyncio
async def set_future_value(future):
await asyncio.sleep(1)
future.set_result("Готово!")
async def main():
loop = asyncio.get_event_loop()
future = loop.create_future()
loop.create_task(set_future_value(future))
result = await future
print(result)
asyncio.run(main())
```
Обычно Futures создаются не напрямую, а через высокоуровневые API, такие как `asyncio.create_task()`. Они лежат в основе корутин и задач asyncio.