future.py 876 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. from asyncio import Future
  2. import asyncio
  3. def test_1():
  4. my_future = Future()
  5. print(f'my_future готов? {my_future.done()}')
  6. my_future.set_result(42)
  7. print(f'my_future готов? {my_future.done()}')
  8. print(f'Какой результат хранится в my_future? {my_future.result()}')
  9. def make_request() -> Future:
  10. future = Future()
  11. asyncio.create_task(set_future_value(future))
  12. return future
  13. async def set_future_value(future) -> None:
  14. await asyncio.sleep(1)
  15. future.set_result(42)
  16. async def test_2():
  17. future = make_request()
  18. print(f'my_future готов? {future.done()}')
  19. value = await future
  20. print(f'my_future готов? {future.done()}')
  21. print(value)
  22. async def main():
  23. # test_1()
  24. test_2()
  25. if __name__ == '__main__':
  26. asyncio.run(test_2())