diff --git a/reactivex/observable/observable.py b/reactivex/observable/observable.py index aca68ab2d..e82e9c83c 100644 --- a/reactivex/observable/observable.py +++ b/reactivex/observable/observable.py @@ -3,7 +3,7 @@ import asyncio import threading -from typing import Any, Callable, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Generator, Iterable, Optional, TypeVar, Union, cast, overload from reactivex import abc from reactivex.disposable import Disposable @@ -254,7 +254,7 @@ def run(self) -> Any: return run(self) - def __await__(self) -> Iterable[_T]: + def __await__(self) -> Generator[Any, None, _T]: """Awaits the given observable. Returns: @@ -263,7 +263,8 @@ def __await__(self) -> Iterable[_T]: from ..operators._tofuture import to_future_ loop = asyncio.get_event_loop() - return iter(self.pipe(to_future_(scheduler=AsyncIOScheduler(loop=loop)))) + future: asyncio.Future[_T] = self.pipe(to_future_(scheduler=AsyncIOScheduler(loop=loop))) + return future.__await__() def __add__(self, other: Observable[_T]) -> Observable[_T]: """Pythonic version of :func:`concat `.