future.py 894 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from asyncio import Future
  2. import asyncio
  3. async 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. pass
  24. # test_1()
  25. # test_2()
  26. if __name__ == '__main__':
  27. asyncio.run(test_2())